Puoi copiare la tua chiave pubblica sui computer remoti. Finché l'autenticazione della chiave pubblica è abilitata e la tua chiave pubblica è presente sulla macchina remota, puoi ssh
sulle macchine 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 chiede se vuoi proteggere la chiave con una passphrase dire SÌ! È una cattiva pratica non proteggere con password le tue chiavi e ti mostrerò come inserire la password solo una volta ogni tanto.
Se hai già una coppia di chiavi, puoi saltare il passaggio precedente.
Ora, supponendo che la tua chiave ssh esista sul tuo Mac come ~/.ssh/id_rsa.pub
, puoi installarla su una macchina remota eseguendo:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Per il tuo specifico server esempio citato sopra, il comando sarà simile a:
cat ~/.ssh/id_rsa.pub | ssh -p 2200 [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Dovrai inserire la password per [email protected]
per eseguire questa copia, ma questa dovrebbe essere l'ultima volta che devi farlo. Supponendo che il sshd
del server remoto sia configurato per eseguire l'autenticazione con chiave pubblica-privata, quando si ssh alla casella ora non dovrebbe chiedere una password per l'account root
- invece ti chiederà la password per il tuo tasto . Continua a leggere per sapere come rendere questo qualcosa che non è necessario inserire sempre.
Ripeti l'operazione precedente per ogni macchina su cui vuoi eseguire l'ssh con le tue chiavi invece di una password.
Nota, chiunque che ottiene una sospensione del tuo file ~/.ssh/id_rsa
può ssh su questa macchina come root
senza fornire una password per la macchina remota. La password che protegge il file chiave assicura che sia necessario conoscere la password per quella chiave per utilizzarla. Assicurati che il file sia sicuro. Usa la crittografia del disco sul tuo Mac e mantieni le autorizzazioni sul file e la cartella ~/.ssh/
stretta.
Per semplificare l'utilizzo della chiave senza dover immettere la password ogni volta, OS X esegue una procedura ssh-agent
in background sul computer. Questo agente memorizzerà nella cache la keypair la prima volta che la utilizzerai, quindi dovrai inserire la password una volta ogni tanto. Se dormi solo nel Mac, non riavvialo mai, puoi passare lunghi periodi di tempo senza dover inserire la password.
Puoi pre-memorizzare tutte le tue chiavi SSH con ssh-agent
eseguendo:
ssh-add
Ora devi solo ricordare la password chiave , non le molte password di account diverse. Di solito mantengo le mie password chiave in 1Password (nessuna affiliazione), semplificando ulteriormente il numero di password che devo ricordare. Poi li ho cercati in 1Password e li ho tagliati e incollati nel Terminale la volta dispari per riavviare il mio Mac e far riavviare il mio ssh-agent
in esecuzione.
Se si combina la copia della chiave su macchine remote con la soluzione di gestione delle connessioni Terminal.app in questa domanda , avrai qualcosa di molto vicino a PuTTY per l'esperienza della connessione GUI.
Sul lato server, controlla /etc/ssh/sshd_config
e assicurati che
PubkeyAuthentication yes
è abilitato nella configurazione (è di default in OpenSSH). Potresti anche voler impostare:
PasswordAuthentication no
Mentre sei lì, l'autenticazione basata su password è disabilitata e le chiavi diventano l'unico modo per accedere alla macchina.
Dovrai riavviare sshd sulla macchina se apporti modifiche al file di configurazione.