22.3. Configurazione del client OpenSSH

Per collegarvi a un server OpenSSH tramite un computer client, è necessario che siano installati i pacchetti openssh-clients e openssh.

22.3.1. Uso del comando ssh

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 username@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.

22.3.2. Uso del comando scp

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 localfile username@tohostname:/newfilename

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 username@penguin.example.net:/home/username

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 username@tohostname:/remotefile /newlocalfile

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/* username@penguin.example.net:/uploads/

22.3.3. Utilizzo del comando sftp

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.

22.3.4. Come generare le coppie di chiavi

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 Enterprise Linux 3 utilizza le chiavi SSH Protocol 2 e RSA di default.

SuggerimentoSuggerimento
 

Se effettuate una reinstallazione ma desiderate salvare la coppia di chiavi generata, eseguite il backup della directory .ssh nella vostra directory home. Dopo la reinstallazione copiate questa directory nella vostradirectory home. Questo processo può essere eseguito per tutti gli utenti del sistema, inclusi gli utenti root.

22.3.4.1. Come generare una coppia di chiavi RSA per la versione 2

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.

  1. 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.

  2. Modificate i permessi per la directory .ssh usando il seguente comando:

    chmod 755 ~/.ssh
  3. Copiate i contenuti di ~/.ssh/id_rsa.pub in ~/.ssh/authorized_keys sulla macchina alla quale desiderate collegarvi. Se il file ~/.ssh/authorized_keys esiste, potete copiare i contenuti del file ~/.ssh/id_rsa.pub nel file ~/.ssh/authorized_keys sull'altra macchina.

  4. Modificate i permessi del file authorized_keysusando il seguente comando:

    chmod 644 ~/.ssh/authorized_keys
  5. Se è installato GNOME, consultate la Sezione 22.3.4.4. Se non è installato il sistema X Window, consultate la Sezione 22.3.4.5.

22.3.4.2. Come generare una coppia di chiavi DSA per la versione 2

Per generare una coppia di chiavi DSA per la versione 2 del protocollo SSH, eseguite la procedura qui descritta.

  1. 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.

    SuggerimentoSuggerimento
     

    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.

  2. Modificate i permessi della directory .ssh mediante il seguentecomando:

    chmod 755 ~/.ssh
  3. Copiate i contenuti di ~/.ssh/id_dsa.pub in ~/.ssh/authorized_keys sulla macchina alla quale volete collegarvi. Se il file ~/.ssh/authorized_keysesiste, potete copiare i contenuti del file ~/.ssh/id_dsa.pub nel file ~/.ssh/authorized_keys sull'altra macchina.

  4. Modificate i permessi del file authorized_keysusando il seguente comando:

    chmod 644 ~/.ssh/authorized_keys
  5. Se è installato GNOME, consultate la Sezione 22.3.4.4. Se non è installato il sistema X Window, consultate la Sezione 22.3.4.5.

22.3.4.3. Come generare una coppia di chiavi RSA per le versioni 1.3 e 1.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.

  1. 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.

  2. Modificate i permessi della directory .ssh e le vostre chiavi tramite i comandi chmod 755 ~/.ssh e chmod 644 ~/.ssh/identity.pub.

  3. 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.

  4. Se state eseguendo GNOME, consultate la Sezione 22.3.4.4. Se non state eseguendo GNOME, consultate la Sezione 22.3.4.5.

22.3.4.4. Configurazione di ssh-agent con GNOME

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 22.3.4.5.

Per salvare la frase di accesso durante la sessione GNOME, eseguite questa procedura:

  1. Avrete bisogno di avere il pacchetto openssh-askpass-gnome; per sapere se tale pacchetto è installato, digitate il comando rpm -q openssh-askpass-gnome. Il pacchetto può essere installato dal vostro CD-ROM Red Hat Enterprise Linux, da un sito mirror FTP Red Hat o usando Red Hat Network.

  2. 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.

  3. 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.

22.3.4.5. Configurazione di ssh-agent

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 22.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.

  1. Al prompt della shell digitate il comando:

    exec /usr/bin/ssh-agent $SHELL
  2. 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.

  3. 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.