Per collegarvi a un server OpenSSH tramite un computer client, è necessario che siano installati i pacchetti openssh-clients e openssh.
Il comando ssh può essere considerato una valida alternativa ai comandi rlogin, rsh e telnet. Questo comando permette di collegarsi e di eseguire comandi su una macchina remota.
L'uso del comando ssh per collegarsi a un computer remoto è simile al comando telnet. Per collegarvi a un computer remoto penguin.example.net, digitate il comando seguente al prompt della shell:
ssh penguin.example.net |
La prima volta che vi collegate a una macchina remota tramite il comando ssh, compare un messaggio simile al seguente:
The authenticity of host 'penguin.example.net' can't be established. DSA key fingerprint is 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c. Are you sure you want to continue connecting (yes/no)? |
Digitate yes per continuare. In questo modo aggiungete il server all'elenco degli host:
Warning: Permanently added 'penguin.example.net' (RSA) to the list of known hosts. |
Successivamente compare il prompt per l'inserimento della password di accesso al server remoto. Una volta inserita la password, compare il prompt della shell. Se non specificate un nome utente, viene passato alla macchina remota il nome utente usato per l'accesso alla macchina client locale. Per specificare un nome utente differente, usate il seguente comando:
ssh nomeutente@penguin.example.net |
Potete anche usare la sintassi ssh -1 nomeutente penguin.example.net.
Il comando ssh può essere utilizzato per eseguire direttamente un comando su una macchina remota senza collegarsi al prompt della shell. La sintassi è ssh nomehost comando. Per esempio, se volete eseguire il comando ls /usr/share/doc sulla macchina remota penguin.example.net, digitate il seguente comando al prompt della shell:
ssh penguin.example.net ls /usr/share/doc |
Dopo aver inserito la password corretta, viene visualizzato il contenuto della directory /usr/share/doc. Quindi ritornerete al prompt della shell.
Il comando scp viene usato per trasferire file tra computer tramite una connessione sicura e criptata. E` simile al comando rcp.
La sintassi generale per trasferire file locali su un sistema remoto è la seguente:
scp filelocale nomeutente@nomehost:/nomenuovofile |
Il file filelocale specifica la sorgente e nomeutente@nomehost:/nomenuovofile specifica la destinazione.
Per trasferire il file locale shadowman su penguin.example.net tramite il proprio account, digitate il comando seguente al prompt della shell (sostituendo nomeutente con il vostro nome utente):
scp shadowman nomeutente@penguin.example.net:/home/nomeutente |
Questo comando trasferisce il file locale shadowman in /home/nomeutente/shadowman su penguin.example.net.
La sintassi per trasferire un file da una macchina remota al sistema locale è la seguente:
scp nomeutente@nomehost:/fileremoto /nuovofilelocale |
fileremoto specifica il file sorgente e nuovofilelocale specifica la destinazione.
Piu` file possono essere specificati come file sorgenti. Per esempio per trasferire il contenuto della directory /downloads nella directory uploads già esistente sulla macchina remota penguin.example.net, digitate al prompt della shell il comando seguente:
scp /downloads/* nomeutente@penguin.example.net:/uploads/ |
L'utility sftp è utilizzata per sessioni FTP interattive e sicure. È simile al comando ftp tranne per il fatto che utilizza una connessione sicura e criptata. La sintassi è sftp nomeutente@nomehost.com. Completata la fase di autenticazione, potete utilizzare il set di comandi simile all'FTP. Consultate la pagina man del comando sftp per ottenere un elenco di questi comandi. Per leggere la pagina man, eseguite il comando man sftp al prompt della shell. L'utility sftp è disponibile a partire dalla versione 2.5.0p1 e successiva di OpenSSH.
Se non volete inserire la vostra password ogni volta che usate i comandi ssh, scp o sftp per collegarvi a una macchina remota, potete generare una coppia di chiavi di autorizzazione.
Le chiavi devono essere generate per ogni utente. Per generare le chiavi per un utente, eseguite la procedura seguente collegandovi con il vostro nome utente. Se vi collegate come root, solo l'utente root potrà utilizzare le chiavi.
Se eseguite l'avvio con la versione 3.0 di OpenSSH, ~/.ssh/authorized_keys2, ~/.ssh/known_hosts2 e /etc/ssh_known_hosts2 risultano obsoleti. I protocolli 1 e 2 di SSH condividono i file ~/.ssh/authorized_keys, ~/.ssh/known_hosts e /etc/ssh/ssh_known_hosts.
Red Hat Linux 9 utilizza le chiavi SSH Protocol 2 e RSA di default.
![]() | Suggerimento |
---|---|
Se reinstallate Red Hat Linux ma desiderate salvare la coppia di chiavi generata, eseguite il backup della directory .ssh nella vostra directory home. Dopo la reinstallazione copiate di nuovo la directory nella directory home. Questo processo può essere eseguito per tutti gli utenti del sistema, inclusi gli utenti root. |
Per generare una coppia di chiavi RSA per la versione 2 del protocollo SSH, utilizzate la seguente procedura, che rappresenta il punto di partenza di default relativo a OpenSSH 2.9.
Per generare una coppia di chiavi RSA da utilizzare con la versione 2 del protocollo, digitate il seguente comando al prompt della shell:
ssh-keygen -t rsa |
Accettate il percorso predefinito del file ~/.ssh/id_rsa. Immettete una frase di accesso diversa dalla password del vostro account e confermatela digitandola una seconda volta.
La chiave pubblica verrà scritta in ~/.ssh/id_rsa.pub, mentre la chiave privata verrà scritta in ~/.ssh/id_rsa. Non comunicate mai la vostra chiave privata a nessuno.
Modificate i permessi per la directory .ssh mediante il comando chmod 755 ~/.ssh.
Copiate il contenuto di ~/.ssh/id_rsa.pub in ~/.ssh/authorized_keys nel computer a cui desiderate connettervi. Se il file ~/.ssh/authorized_keys non esiste, potete copiare il file ~/.ssh/id_rsa.pub nel file ~/.ssh/authorized_keys dell'altro computer.
Se è installato GNOME, consultate la Sezione 15.3.4.4. Se non è installato il sistema X Window, consultate la Sezione 15.3.4.5.
Per generare una coppia di chiavi DSA per la versione 2 del protocollo SSH, eseguite la procedura qui descritta.
Per generare una coppia di chiavi DSA per la versione 2 del protocollo, digitate il seguente comando al prompt della shell:
ssh-keygen -t dsa |
Accettate il percorso predefinito del file ~/.ssh/id_dsa. Immettete una frase di accesso diversa dalla password del vostro account e confermatela inserendola una seconda volta.
![]() | Suggerimento |
---|---|
Una frase di accesso è una sequenza di parole e caratteri utilizzata per autenticare l'utente. Al contrario delle password, le frasi di accesso possono contenere anche spazi e tabulazioni. Inoltre le frasi di accesso sono generalmente più lunghe delle password poiché possono contenere più parole. |
La chiave pubblica verrà scritta in ~/.ssh/id_dsa.pub, mentre la chiave privata verrà scritta in ~/.ssh/id_dsa. Non comunicate mai la vostra chiave privata a nessuno.
Modificate i permessi della directory .ssh usando il comando chmod 755 ~/.ssh.
Copiate il contenuto della directory ~/.ssh/id_dsa.pub in ~/.ssh/authorized_keys sulla macchina a cui volete collegarvi. Se il file ~/.ssh/authorized_keys non esiste, potete copiare il file ~/.ssh/id_dsa.pub nel file ~/.ssh/authorized_keys sull'altra macchina.
Se state utilizzando GNOME, consultate la Sezione 15.3.4.4. Se non state utilizzando il sistema X Window, consultate la Sezione 15.3.4.5.
Eseguite la procedura seguente per generare una coppia di chiavi RSA per la versione 1 del protocollo SSH. Se effettuate solo connessioni tra sistemi Red Hat Linux 9, non dovete generare una coppia di chiavi RSA versione 1.3 o RSA versione 1.5.
Per generare une coppia di chiavi RSA (per le versioni 1.3 e 1.5), digitate il comando seguente al prompt della shell:
ssh-keygen -t rsa1 |
Accettate il percorso predefinito del file (~/.ssh/identity). Immettete una frase di accesso diversa dalla vostra password di account e confermatela digitandola una seconda volta.
La chiave pubblica verrà scritta in ~/.ssh/identity.pub, mentre la chiave privata verrà scritta in ~/.ssh/identity. Non comunicate mai la vostra chiave privata a nessuno.
Modificate i permessi della directory .ssh e le vostre chiavi tramite i comandi chmod 755 ~/.ssh e chmod 644 ~/.ssh/identity.pub.
Copiate il contenuto di ~/.ssh/identity.pub nel file ~/.ssh/authorized_keys della macchina remota alla quale volete collegarvi. Se il file ~/.ssh/authorized_keys non esiste, copiate il file ~/.ssh/identity.pub nel file ~/.ssh/authorized_keys sulla macchina remota.
Se state eseguendo GNOME, consultate la Sezione 15.3.4.4. Se non state eseguendo GNOME, consultate la Sezione 15.3.4.5.
L'utility ssh-agent può essere usata per salvare la frase di accesso ed evitare di ridigitarla ogni volta che attivate una connessione ssh o scp. In GNOME l'utility openssh-askpass-gnome può essere usata per richiedere la frase di accesso al momento della connessione a GNOME e per conservarla fino alla disconnessione. Non dovrete inserire la vostra password o frase di accesso per le connessioni ssh o scp effettuate durante la sessione di GNOME. Se non state usando GNOME, consultate la Sezione 15.3.4.5.
Per salvare la frase di accesso durante la sessione GNOME, eseguite questa procedura:
Il vostro sistema deve contenere il pacchetto openssh-askpass-gnome; per sapere se disponete di tale pacchetto, digitate il comando rpm -q openssh-askpass-gnome. Il pacchetto può essere installato da uno dei CD Red Hat, da un sito mirror FTP Red Hat o usando Red Hat Network.
Se non avete il file ~/.Xclients, potete eseguire switchdesk per crearlo. Nel file ~/.Xclients, modificate la riga seguente:
exec $HOME/.Xclients-default |
Cambiate la riga in modo che risulti:
exec /usr/bin/ssh-agent $HOME/.Xclients-default |
Selezionate il pulsante del menu principale => (sul Pannello) =>Preferenze => Piú preferenze => Sessioni => e fate clic sulla scheda Programmi di startup. Fate clic su Aggiungi e digitate /usr/bin/ssh-add nell'area Comando di startup. Attribuitegli un livello di priorità superiore a qualsiasi altro comando in modo che venga eseguito per ultimo. Vi consigliamo di attribuire a ssh-add un numero uguale o superiore a 70. Più alto è il numero, più bassa è la priorità. Se avete altri programmi in elenco, questo deve avere la priorità più bassa. Selezionate Close per uscire dal programma.
Scollegatevi e ricollegatevi a GNOME; in altre parole, riavviate X. Una volta avviato GNOME, si apre una finestra di dialogo che richiede l'inserimento della frase di accesso. Inserite la frase di accesso richiesta. Se sono state configurate sia le chiavi DSA che RSA, il sistema richiede entrambe le coppie. D'ora in poi, i comandi ssh, scp o sftp non richiedono alcuna password.
Il comando ssh-agent permette di registrare la frase di accesso per non doverla digitare ogni volta che viene stabilita una connessione ssh o scp. Se non usate il sistema X Window, eseguite la procedura di seguito riportata dal prompt della shell. Se siete in GNOME, ma non volete configurarlo in modo che vi chieda la vostra frase di accesso al momento del login (consultate la Sezione 15.3.4.4), la procedura funziona in una finestra di terminale, come xterm. Se state eseguendo X, ma non GNOME, la procedura funziona in una finestra di terminale. Tuttavia, la vostra frase di accesso viene memorizzata solo per quella finestra. Non si tratta di un'impostazione valida a livello globale.
Al prompt della shell digitate il comando:
exec /usr/bin/ssh-agent $SHELL |
Quindi digitate il comando:
ssh-add |
e inserite la vostra frase di accesso. Se sono configurate più coppie di chiavi, vi vengono richieste tutte le coppie.
Quando vi scollegate, la vostra frase di accesso viene cancellata. Ogni volta che vi collegate a una console virtuale o aprite una finestra di terminale, dovete eseguire questi due comandi.