Configurazione del client OpenSSH

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

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

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 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/

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 [email protected]. 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.

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

SuggerimentoSuggerimento
 

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.

Generazione di 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 mediante il comando chmod 755 ~/.ssh.

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

  4. Se � installato GNOME, consultate la sezione Configurazione di ssh-agent con GNOME. Se non � installato il sistema X Window, consultate la sezione Configurazione di ssh-agent.

Generazione di 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 usando il comando chmod 755 ~/.ssh.

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

  4. Se state utilizzando GNOME, consultate la sezione Configurazione di ssh-agent con GNOME. Se non state utilizzando il sistema X Window, consultate la sezione Configurazione di ssh-agent.

Generazione di 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 8.0, 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 Configurazione di ssh-agent con GNOME. Se non state eseguendo GNOME, consultate la sezione Configurazione di ssh-agent.

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 Configurazione di ssh-agent.

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

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

  2. 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
  3. Selezionate il pulsante del menu principale => (sul Pannello) =>Extra => Preferenze => Sessions => 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.

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

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 Configurazione di ssh-agent con GNOME), 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

    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.

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