È possibile copiare la chiave pubblica sui computer remoti. Finché hanno abilitato l'autenticazione con chiave pubblica e la chiave pubblica è presente sul computer remoto, è possibile accedere ai computer ssh
senza dover fornire una password.
Per prima cosa dovrai generare una coppia di chiavi pubblica / privata in questo modo:
ssh-keygen -t rsa
Segui le istruzioni. Quando ti viene chiesto se desideri proteggere la chiave con una passphrase, pronuncia SÌ! È una buona pratica non proteggere con password le chiavi e ti mostrerò come inserire la password solo una volta ogni tanto.
Se hai già una coppia di chiavi, puoi saltare il passaggio sopra.
Ora, supponendo che la tua chiave ssh esista sul tuo Mac come ~/.ssh/id_rsa.pub
, puoi installarla su un computer remoto eseguendo:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Per l'esempio di server specifico sopra citato, il comando sarebbe simile a:
cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Dovrai inserire la password per root@123.456.789.012
eseguire questa copia, ma questa dovrebbe essere l'ultima volta che devi farlo. Supponendo che il server remoto sshd
sia configurato per eseguire l'autenticazione con chiave pubblica-privata, quando si invia ssh alla casella ora non dovrebbe chiederti una password per l' root
account, ma ti chiederà la password per la tua chiave . Continua a leggere su come rendere questo qualcosa che non è necessario inserire in ogni momento.
Ripeti quanto sopra per ogni macchina su cui desideri accedere con le tue chiavi invece che con una password.
Si prega di notare che chiunque ottenga una sospensione del ~/.ssh/id_rsa
file può inviare a questa macchina come root
senza fornire una password per la macchina remota. La password che protegge il file chiave assicura che dovrebbero aver bisogno di conoscere la password per quella chiave per usarlo. Assicurarsi che il file sia sicuro. Usa la crittografia del disco sul Mac e mantieni ~/.ssh/
strette le autorizzazioni per il file e la directory.
Per semplificare l'utilizzo della chiave senza dover inserire la password ogni volta, OS X esegue un ssh-agent
processo in background sul tuo computer. Questo agente memorizzerà nella cache la coppia di chiavi la prima volta che la usi, quindi dovrai inserire la password solo una volta ogni tanto. Se dormi solo il tuo mac, non riavviarlo mai, puoi passare lunghi periodi di tempo senza dover inserire la password.
È possibile pre-cache tutte le chiavi SSH con il ssh-agent
eseguendo:
ssh-add
Ora devi solo ricordare la password della chiave , non le diverse password dell'account. Di solito conservo le mie password chiave in 1Password (nessuna affiliazione), semplificando ulteriormente quante password devo ricordare. Quindi li cerco solo in 1Password e li incollo nel Terminale la volta dispari riavvio il Mac e faccio ripartire la corsa ssh-agent
.
Se combini la copia della chiave su macchine remote con la soluzione di gestione della connessione Terminal.app in questa domanda , avrai qualcosa di molto simile a PuTTY per l'esperienza di connessione della GUI.
Sul lato server, verificare /etc/ssh/sshd_config
e assicurarsi che:
PubkeyAuthentication yes
è abilitato nella configurazione (è di default in OpenSSH). Potresti anche voler impostare:
PasswordAuthentication no
Mentre sei lì, quindi l'autenticazione basata su password è disabilitata e le chiavi diventano l'unico modo per accedere alla macchina.
È necessario riavviare sshd sul computer se si apportano modifiche al file di configurazione.