Di solito mi collego al server remoto con
ssh user@server.com -p 11000
e quindi dare la password ogni volta per l'utente. Come devo evitare di inserire la password ogni volta che mi connetto usando ssh?
Di solito mi collego al server remoto con
ssh user@server.com -p 11000
e quindi dare la password ogni volta per l'utente. Come devo evitare di inserire la password ogni volta che mi connetto usando ssh?
Risposte:
Innanzitutto , inseriscilo in ~/.ssh/config
:
Host server
HostName server.com
Port 11000
User user
Sarai in grado di ssh server
, quindi digitare la password.
Secondo , controlla ~/.ssh/
per vedere se hai dei file con nome id_rsa
e id_rsa.pub
. In caso contrario, non è stata impostata alcuna chiave, quindi è necessario generare una coppia utilizzando ssh-keygen
. È possibile assegnare una password alle chiavi o meno. Il file generato id_rsa.pub
dovrebbe essere simile al seguente:
ssh-rsa lotsofrandomtext utente @ local
In terzo luogo , ssh sul server, crea il file ~/.ssh/authorized_keys
se non esiste. Quindi aggiungi il contenuto di quello ~/.ssh/id_rsa.pub
che hai generato prima qui. Questo potrebbe significare copiare il contenuto del file negli appunti, quindi aprirlo ~/.ssh/authorized_keys
in un editor di testo e incollare la cosa.
In alternativa, utilizzare il comando ssh-copy-id server
(sostituire server
con il nome in ~/.ssh/config
). Questo farà la stessa cosa di cui sopra. A volte ho visto ssh-copy-id
rimanere bloccato, quindi non mi piace molto.
Ora dovresti essere in grado di ssh con just ssh server
, a meno che tu non abbia scelto di proteggere la tua chiave privata con una passphrase. In genere, se non si utilizza una passphrase, è necessario proteggere la chiave privata con altri mezzi (ad es. Crittografia del disco completo).
Quarto (necessario solo se proteggi la tua chiave privata con una passphrase), inseriscilo in~/.bashrc
:
start_ssh_agent() {
# Try to use an existing agent
save=~/.ssh-agent
if [[ -e "$save" ]]
then
. "$save" > /dev/null
fi
# No existing agent, start a new one
if [[ -z "$SSH_AGENT_PID" || ! -e "/proc/$SSH_AGENT_PID" ]]
then
ssh-agent > "$save"
. "$save" > /dev/null
ssh-add
fi
}
start_ssh_agent
Con questo, dovrai solo inserire la passphrase una volta all'avvio del computer.
User user
linea a ~/.ssh/config
.
Passa all'autenticazione basata su chiave .
ssh -P 11000
sono stato in grado di copiare con ssh. Grazie molto.
Come supplemento alla risposta di phunehehe, consulta la Guida ai portachiavi di Gentoo Linux per una guida al portachiavi . il portachiavi usa anche ssh-agent . Il demone ssh-agent rende disponibile la passphrase (diventa non disponibile quando il demone ssh-agent muore) ma portachiavi reuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in
, per citare la guida.