GNU/Linux >> Linux Esercitazione >  >> Linux

Comandi SSH in Linux con esempi di utilizzo

SSH è un protocollo di rete per accedere in modo sicuro a una macchina remota ed eseguire comandi. È progettato e creato per fornire la migliore sicurezza quando si accede a un altro computer in remoto. Ogni volta che i dati vengono inviati da un computer alla rete, ssh li crittograferà automaticamente.

Per utilizzare SSH, sul computer di destinazione deve essere installata un'applicazione server SSH poiché SSH è un modello client-server. Un server SSH, per impostazione predefinita, è in ascolto sulla porta TCP standard 22. Per impostazione predefinita, il client SSH è disponibile su tutte le distribuzioni Linux.

In questo tutorial impariamo i comandi SSH su Linux con esempi di utilizzo.

Prerequisiti

  • Un client SSH
  • Un server SSH
  • Indirizzo IP o nome del server remoto

1. Come eseguire l'SSH su un server remoto

Un server remoto è connesso utilizzando un indirizzo IP o il nome dell'host. Per connettere ssh usando un indirizzo IP, usa il seguente comando:

ssh [ IP ADDRESS]

Per connetterti a ssh usando il nome, usa il seguente comando:

ssh [ HOSTNAME ]

Ad esempio, per connettersi a un host remoto utilizzando l'indirizzo IP 192.168.239.133, il comando sarebbe il seguente.

$ ssh 192.168.239.133

Quando ti connetti per la prima volta a un host, viene visualizzato un messaggio che ti chiede se desideri continuare a connetterti. Digita yes, quindi inserisci la password per il tuo host remoto.

2. SSH con nome utente

SSH utilizza l'utente corrente del server remoto durante il tentativo di connessione. Per connetterti a ssh con il nome utente, usa la seguente sintassi.

ssh [USERNAME]@[HOSTNAME/IP ADDRESS]

Ad esempio, per connettersi all'host remoto con indirizzo IP 192.168.239.134 con nome utente kali, utilizzare il comando seguente.

$ ssh [email protected]

3. SSH con un numero di porta diverso

Il server SSH ascolta la porta TCP 22 per impostazione predefinita, ma se desideri cambiarla, devi specificare la porta nel comando.

Per connettersi a un host remoto utilizzando un numero di porta diverso, utilizzare il flag -p come mostrato nella sintassi seguente.

ssh [ IP ADDRESS/HOSTNAME ] -p [ PORT NUMBER ]

Ad esempio, per connettersi all'host remoto con un indirizzo IP 192.168.239.134 utilizzando il numero di porta 223, utilizzare il comando seguente.

$ ssh 192.168.239.134 -p 223

4. SSH senza password

In tre semplici passaggi, puoi connetterti al tuo host remoto usando ssh senza password. I tre passaggi necessari per accedere a un server remoto senza inserire una password sono i seguenti.

Genera chiave SSH

Per generare chiavi SSH, viene utilizzato ssh-keygen che crea le chiavi pubbliche e private. Queste coppie di chiavi vengono utilizzate per l'autenticazione tra client e server.

Per creare una coppia di chiavi, immettere il seguente comando sulla macchina client.

$ ssh-keygen -t rsa

Immettere la posizione e la parafrasi oppure premere Invio per utilizzare le impostazioni predefinite.

Copia la chiave SSH pubblica

È necessario copiare la chiave SSH pubblica su un server remoto per utilizzare la coppia di chiavi. Per copiare la chiave SSH pubblica sul server remoto, utilizzare la seguente sintassi sul computer host.

ssh-copy-id [USERNAME]@[HOSTNAME/IP ADDRESS]

Per copiare la chiave SSH dall'indirizzo IP 192.168.239.134, utilizzare il comando seguente.

$ ssh-copy-id [email protected]

Accedi da remoto senza password

Ora puoi accedere al server remoto senza password usando il seguente comando.

ssh [USERNAME]@[HOSTNAME/IP ADDRESS]

Ad esempio, per connettersi all'host remoto con indirizzo IP 192.168.239.134 con nome utente kali, utilizzare il comando seguente.

$ ssh [email protected]

5. Esegui un comando su un server remoto utilizzando SSH

Il comando ssh può essere utilizzato per accedere al server remoto. Può essere utilizzato anche per eseguire comandi sul server remoto.

La sintassi di base per eseguire comandi su ssh è la seguente.

ssh USER1@SERVER1 COMMAND1

ssh USER1@SERVER1 'COMMAND2'

ssh USER1@SERVER1 'COMMAND1 | COMMAND2'

ssh ADMIN@BOX1 "COMMAND1; COMMAND2; COMMAND3"

Per ottenere la data e l'ora del server remoto, utilizzare la seguente sintassi:

ssh USER1@SERVER1 date

Ad esempio, per ottenere la data dell'utente kali dal server dell'indirizzo IP 192.168.239.134, utilizzare il comando seguente.

$ ssh [email protected] date

Per controllare l'utilizzo dello spazio su disco del server remoto, la sintassi è la seguente.

ssh USER1@SERVER1 'df -H'

Ad esempio, per ottenere l'utilizzo dello spazio su disco dell'utente kali dal server dell'indirizzo IP 192.168.239.134, utilizzare il comando seguente.

$ ssh [email protected] 'df -H'

Per controllare gli ultimi registri di riavvio dell'utente remoto, utilizzare la seguente sintassi.

ssh USER1@SERVER1 "last reboot"

Ad esempio, per ottenere gli ultimi registri di riavvio degli utenti kali dal server con indirizzo IP 192.168.239.134, utilizzare il comando seguente.

$ ssh [email protected] "last reboot"

Opzioni della riga di comando SSH

Vediamo alcune delle opzioni disponibili con il comando ssh.

ssh -C

Usa l'opzione -C con ssh per richiedere la compressione su tutti i dati ricevuti o trasferiti dal server remoto, come mostrato nella seguente sintassi.

ssh -C [USERNAME]@[HOSTNAME/IP ADDRESS]

Ad esempio,

$ ssh -C [email protected]

ssh -v

L'opzione -v viene utilizzata con il comando ssh per eseguire il debug del client ssh. Quella che segue è la sintassi:

$ ssh -v [USERNAME]@[HOSTNAME/IP ADDRESS]

Ad esempio,

$ ssh -v [email protected]

ssh -b

L'opzione -b viene utilizzata per associare un indirizzo IP a una connessione SSH. L'indirizzo IP verrà utilizzato come indirizzo di origine della connessione SSH. Viene utilizzato quando un client ha più di due indirizzi IP e potresti non sapere quale indirizzo IP viene utilizzato per creare una connessione al server SSH.

Ad esempio,

$ ssh -b 192.168.239.133 [email protected]

Il comando legherà l'indirizzo IP al server remoto. Possiamo verificarlo usando netstat |grep ssh comando per verificare la connessione.

ssh -F

L'opzione -F viene utilizzata insieme al comando ssh per specificare una configurazione per utente. Il file di configurazione predefinito è ~/.ssh/config.

Per utilizzare un file di configurazione specifico, utilizzare l'opzione -F nel modo seguente.

$ ssh -F [File Location] [USERNAME]@[HOSTNAME/IP ADDRESS]

Ad esempio,

$ ssh -F /etc/ssh/ssh_config.d [email protected]

ssh -L

L'opzione -L viene utilizzata per il port forwarding locale. Il port forwarding locale ci consente di instradare il traffico dal nostro host a una porta di destinazione tramite un proxy.

La sintassi di base per il port forwarding locale è la seguente.

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATIONPORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Ad esempio, eseguire il comando seguente per connettersi all'host remoto sulla porta 3306 dell'utente kali con IP 192.168.239.134 dall'host locale 192.168.239.133 sulla porta 3336.

$  ssh -L 3336:192.168.239.133:3306 [email protected]

ssh -R

L'opzione -R viene utilizzata insieme al comando SSH per abilitare il port forwarding remoto. Ciò significa che puoi inoltrare una porta sul server remoto a una porta sulla tua macchina locale, che viene quindi inoltrata a una porta sulla macchina di destinazione.

La sintassi di base per il port forwarding remoto è la seguente.

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Ad esempio,

$ ssh -R 3336:192.168.239.133:3000 [email protected]

Il comando farà in modo che ssh ascolti il ​​server ssh nella porta 3336 e trasmetterà tutto il traffico alla porta 3000.

ssh -C -D

L'opzione -D abilita il port forwarding dinamico. La normale porta SOCKS è 1001, tuttavia è possibile utilizzare qualsiasi numero di porta; tuttavia, alcuni programmi funzioneranno solo sulla porta 1001.

La sintassi di base per l'inoltro dinamico è la seguente.

ssh -D [LOCAL_IP:]LOCAL_PORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Ad esempio,

$ sudo ssh -C -D 1001 [email protected] 

-D specifica il port forwarding dinamico nella porta 1001 e -C abilita la compressione.

ssh -X

L'opzione -X viene utilizzata insieme a ssh per l'inoltro X11. Quella che segue è la sintassi per l'inoltro X11.

ssh -X [USERNAME]@[HOSTNAME/IP ADDRESS]

Utilizzare il comando seguente per abilitare l'inoltro X11 sull'utente kali con indirizzo IP 192.168.239.134.

$ ssh -X 192.168.239.134

ssh -Y

L'opzione -Y viene utilizzata insieme a ssh per l'inoltro Trusted X11. Ciò significa che l'X11 remoto avrà pieno accesso al display X11 originale.

ssh -Y [USERNAME]@[HOSTNAME/IP ADDRESS]

Utilizzare il comando seguente per abilitare l'inoltro Trusted X11 sull'utente kali con indirizzo IP 192.168.239.134.

$ ssh -Y 192.168.239.134

ssh -o

L'opzione -o può essere utilizzata con altre opzioni.

Ad esempio,

$ ssh -o "batchmode=yes" [email protected]

Se usi ssh -o "batchmode=yes", il comando verrà eseguito correttamente sulla macchina remota se la connettività senza password è abilitata, altrimenti restituirà un errore.

Alcune delle più importanti opzioni della riga di comando sono mostrate nella tabella seguente.

Opzione Descrizione
-A Abilita l'inoltro della connessione dell'agente di autenticazione.
-a Disabilita la connessione dell'agente di autenticazione da inoltrare.
-b Viene usato per associare gli indirizzi di origine.
-C È usato per la compressione dei dati.
-c specifica_cifra Seleziona la specifica di cifratura per crittografare la sessione.
-D È responsabile del port forwarding dinamico a livello di applicazione.
-E log_file Aggiunge i log di debug a log_file invece dell'errore standard.
-F file di configurazione Specifica un file di configurazione per utente.
-g Consente agli host remoti di connettersi a porte inoltrate locali.
-i file_identità Legge la chiave privata per l'autenticazione a chiave pubblica.
-j Specifica una direttiva di configurazione ProxyJump.
-l nome_accesso Specifica l'utente per accedere alla macchina remota.
porta -p Viene utilizzato per specificare la porta per la connessione all'host remoto.
-q È la modalità silenziosa.
-V Modalità dettagliata.
-X Abilita l'inoltro X11
-Y Abilita l'inoltro Trusted X11

Conclusione

In questo tutorial, abbiamo imparato come usare il comando ssh insieme a utili esempi. Grazie per la lettura, fornisci i tuoi commenti e suggerimenti nella sezione commenti qui sotto.


Linux
  1. Invia comandi a più sessioni SSH con Terminator

  2. Comando wc Linux con esempi

  3. 19 comandi SSH comuni in Linux con esempi

  4. Oltre 10 comandi VI Linux con esempi

  5. Comando JQ in Linux con esempi

Comandi Nmap con esempi

Comandi RPM in Linux con esempi

Esegui comandi su sistemi Linux remoti tramite SSH

Utilizzo del comando SSH nei sistemi Linux/Unix

Utilizzo del comando Linux mv con esempi

Utilizzo del comando Linux sed con esempi