Introduzione
SSH (Secure Shell) è un protocollo di rete che consente connessioni remote sicure tra due sistemi. Gli amministratori di sistema utilizzano le utilità SSH per gestire macchine, copiare o spostare file tra sistemi. Poiché SSH trasmette i dati su canali crittografati, la sicurezza è di alto livello.
Questo articolo ti guiderà attraverso i comandi SSH più popolari . L'elenco può anche fungere da cheat sheet e tornerà utile la prossima volta che dovrai completare un'attività.
Prerequisiti
- Un cliente SSH a tua scelta
- Un server SSH sulla macchina remota
- L'indirizzo IP o il nome del server remoto
Come accedere a un server remoto
Per connettersi a una macchina remota, è necessario il suo indirizzo IP o nome. Carica il terminale o qualsiasi client SSH e digita ssh
seguito dall'indirizzo IP:
ssh 192.168.56.101
o nome:
ssh test.server.com
La prima volta che ti connetti a un host, vedrai questo messaggio:
Digita sì e premi invio. Potrebbe essere necessario inserire anche la password.
Specificare un nome utente per la connessione SSH
SSH utilizza l'utente corrente quando accede a un server remoto. Per specificare un utente per una connessione SSH, esegui il comando in questo formato:
ssh [email protected]_or_ip
Ad esempio:
ssh [email protected]
Nota: Se riscontri l'errore "Connessione rifiutata", consulta la nostra guida SSH "Connessione rifiutata" per le soluzioni.
Utilizzare un numero di porta diverso per la connessione SSH
Per impostazione predefinita, il server SSH è in attesa di una connessione sulla porta 22. Se l'impostazione della porta nel file di configurazione SSH è stata modificata, dovrai specificare la porta. In caso contrario, riceverai questo errore:
Per connetterti a un host remoto con un numero di porta SSH personalizzato, utilizza il -p
bandiera. Ad esempio:
ssh test.server.com -p 3322
Genera chiavi SSH utilizzando SSH Keygen
Per migliorare la sicurezza delle connessioni SSH, generare una coppia di chiavi con l'utilità keygen. La coppia è composta da una chiave pubblica e una privata. La chiave pubblica può essere condivisa, mentre la chiave privata deve essere protetta.
Le coppie di chiavi SSH vengono utilizzate per autenticare automaticamente i client sui server. Quando crei una coppia di chiavi SSH, non è più necessario inserire una password per accedere a un server.
Sul terminale della macchina host, usa questo comando per creare una coppia di chiavi:
ssh-keygen -t rsa
Per utilizzare le impostazioni predefinite, premi Invio nelle richieste di posizione del file e passphrase.
Copia chiave SSH pubblica
Per utilizzare la coppia di chiavi per l'autenticazione SSH, dovrai copiare la chiave pubblica su un server. La chiave è il file id_rsa.pub precedentemente creato con l'utilità keygen SSH.
Per copiare la tua chiave su un server, esegui questo comando dal client:
ssh-copy-id hostname_or_IP
Puoi anche specificare un nome utente se non desideri utilizzare l'utente corrente.
Immettere la password per autenticarsi quando richiesto. Dopodiché, non dovrai più utilizzare la password per connetterti allo stesso server.
Copia un file in remoto su SSH con SCP
Puoi copiare in modo sicuro i file tramite il protocollo SSH utilizzando SCP attrezzo. La sintassi di base è:
scp fileName [email protected]:/home/username/destination
Ad esempio, per copiare un file campione3 sul desktop su un server remoto con un nome utente test , digita:
scp sample3 [email protected]:/home/test/Desktop
L'output mostra un riepilogo dell'operazione.
Assicurati di utilizzare le lettere maiuscole -P
flag se è necessario specificare la porta.
Modifica file di configurazione SSH
Puoi controllare come gli utenti remoti possono accedere a un server tramite SSH. Modifica le impostazioni in sshd_config
per personalizzare le opzioni del server SSH. Assicurati di modificare solo le opzioni che conosci. Un server può diventare inaccessibile a causa di una configurazione errata.
Usa l'editor di tua scelta per modificare il file. Avrai bisogno delle autorizzazioni di superutente per apportare modifiche. In Linux, utilizziamo vim :
Nella riga di comando su un host remoto, digita:
sudo vim /etc/ssh/sshd_config
Inserisci la password sudo e la shell aprirà il file nell'editor che hai usato.
Riavvia il servizio SSH
Quando apporti modifiche alla configurazione SSH, dovrai riavviare il servizio in Linux.
A seconda della distribuzione Linux, esegui uno dei seguenti comandi sul computer in cui hai modificato le impostazioni:
sudo ssh service restart
oppure:
sudo sshd service restart
Infine, inserisci la password per completare il processo. Di conseguenza, la prossima sessione SSH utilizzerà le nuove impostazioni.
Comandi SSH di base
Lavorare su un server remoto utilizzando SSH richiede la conoscenza dei comandi SSH di base. Utilizzare i comandi e le opzioni in questo articolo per gestire un host remoto. Nota che puoi combinare i flag per ottenere l'output di cui hai bisogno.
Mostra percorso directory di lavoro
Usa il pwd
comando per mostrare il percorso del file system.
L'output mostra la posizione della directory in cui ti trovi.
Elenca file e directory
Cambia directory
Per elencare il contenuto di una cartella di lavoro corrente, usa ls comando.
La shell mostrerà i nomi di tutte le directory, file e collegamenti. Per ottenere maggiori informazioni, aggiungi uno dei seguenti flag:
-a
mostra i file e le voci Linux nascosti che iniziano con un punto.-l
mostra i dettagli del file per il contenuto della directory. Ad esempio, l'output include autorizzazioni, proprietà, data e così via-s
elenca la dimensione dei file, in blocchi. Aggiungi -h per mostrare la dimensione in un formato leggibile dall'uomo.
Per passare a una cartella specifica, utilizza il cd
comando e un nome o percorso di una directory.
cd Desktop/Downloads/Sample
Ricorda che i nomi fanno distinzione tra maiuscole e minuscole. Usa cd
senza nome o percorso per tornare alla home directory dell'utente.
Utile cd
le opzioni includono:
cd ..
vai alla directory un livello più alto della tua posizione attuale.cd -
passa alla directory precedente.cd /
vai alla directory principale.
Copia un file
Usa il cp
comando per copiare un file o una directory. Dovrai includere il nome del file e la posizione di destinazione.
cp fileName /directory/path/destination
Per copiare file1 dal Desktop in Dir1 , digita:
cp file1 Dir1
Per cambiare il nome di file1 durante la copia in un'altra destinazione, utilizzare questo formato:
cp file1 Dir1/Newfile1Name
Questo comando copia file1 a Dir1 con un nome da te specificato.
Per copiare una directory e il suo contenuto, usa il flag -r in questo formato:
cp -r Directory1 NewLocation
Sposta un file
Il mv
comando funziona allo stesso modo del comando copia.
Ad esempio, per spostare un file in un'altra posizione, digita:
mv fileName directory/path/destination
Crea un file
Il comando touch ti consente di creare un nuovo file con qualsiasi estensione.
Nel terminale, inserisci il seguente comando:
touch fileName
Ad esempio, per creare un system.log file, digita:
touch system.log
Crea una directory
Per creare una directory, usa mkdir
comando. Immettere un nuovo nome di directory o un percorso completo in questo formato:
mkdir NewDirectoryName
Oppure:
mkdir directory/path/NewDirectoryName
Elimina un file o una directory
Per eliminare un file Linux , usa rm
in questo formato:
rm fileName
Inoltre, puoi inserire un percorso completo:
rm /home/user/dir1/fileName
Per eliminare una directory , aggiungi il -r
flag al comando rm.
Visualizza le informazioni sulla rete
Per visualizzare lo stato di tutte le schede di rete, utilizza ifconfig
comando. Inoltre, quando non utilizzi alcuna opzione con ifconfig, l'output mostra solo le interfacce attive.
Cancella lo schermo del terminale
Per cancellare l'area di lavoro corrente della schermata bash, digita clear
nel guscio. Questo comando cancella una porzione dello schermo e sposta l'output precedente.
Per rimuovere completamente l'output dal terminale, utilizzare il reset
comando.
Esegui un comando su un server remoto da un computer locale
Questo metodo non crea una nuova shell. Al contrario, esegue un comando e riporta l'utente al prompt locale. Puoi creare un file, copiare file o eseguire qualsiasi altro comando SSH in questo formato.
Per eseguire in remoto un comando dalla macchina locale, aggiungere un'istruzione al comando SSH. Ad esempio, per eliminare un file, digita:
ssh test.server.com rm ~/Desktop/Dir1/sample4
Immettere la password e il file sul server remoto verrà eliminato senza creare una nuova shell.
Opzioni della riga di comando SSH
Lo strumento SSH viene fornito con molti opzionali parametri. La tabella seguente elenca le opzioni SSH comuni e le descrizioni corrispondenti.
Opzione SSH | Descrizione |
-1 | Istruisce a ssh l'uso del protocollo versione 1 |
-2 | Istruisce a ssh l'utilizzo del protocollo versione 2. |
-4 | Consente solo indirizzi IPv4. |
-6 | Consente solo indirizzi IPv6. |
-A | Abilita l'inoltro della connessione dell'agente di autenticazione. Usa questa opzione con cautela. |
-a | Disabilita l'inoltro della connessione dell'agente di autenticazione. |
-b bind_address | Utilizzare questa opzione sull'host locale con più di un indirizzo per impostare l'indirizzo di origine della connessione. |
-C | Abilita la compressione dei dati per tutti i file. Da utilizzare solo con connessioni lente. |
-c spec_cifra | Utilizzare per selezionare una specifica di cifratura. Elenca i valori separati da una virgola. |
-E nomefile_log | Allega i log di debug a log_file invece dell'errore standard. |
-f | Invia ssh in background, anche prima di inserire una password o una passphrase. |
-g | Consente agli host remoti di connettersi alle porte inoltrate su una macchina locale. |
-q | Esegue ssh in modalità silenziosa. Elimina la maggior parte dei messaggi di errore o di avviso. |
-V | Visualizza la versione dello strumento ssh ed esce. |
-v | Stampa i messaggi di debug per la connessione ssh. La modalità dettagliata è utile durante la risoluzione dei problemi di configurazione. |
-X | Usa questa opzione per abilitare l'inoltro X11. |
-x | Disabilita l'inoltro X11. |