La passphrase che può essere impostata sulla chiave privata non è correlata al server SSH o alla connessione ad essa. L'impostazione di una passphrase sulla chiave privata è semplicemente una misura di sicurezza che il proprietario della chiave può adottare per impedire l'accesso alla sua shell remota da parte di terzi nel caso in cui la chiave privata venga rubata.
Sfortunatamente, non è possibile forzare gli utenti a proteggere le proprie chiavi private con passphrase. A volte sono necessarie chiavi private non protette per automatizzare l'accesso al server SSH remoto. Una buona abitudine che consiglio vivamente in questi casi è di consigliare agli utenti di eseguire l' hashing del file known_hosts (memorizzato in ~ / .ssh / known_hosts ), che mantiene le informazioni sugli host remoti a cui l'utente si collega, usando il seguente comando:
ssh-keygen -H -f ~/.ssh/known_hosts
In questo modo, anche se una terza parte avesse accesso a una chiave privata non protetta, sarebbe estremamente difficile scoprire per quali host remoti questa chiave è valida. Ovviamente, cancellare la cronologia della shell è obbligatorio affinché questa tecnica abbia valore.
Inoltre, un'altra cosa che dovresti sempre tenere a mente, non è consentire a root di accedere in remoto aggiungendo quanto segue nella configurazione del tuo server SSH (sshd_config):
PermitRootLogin no
D'altra parte, se si desidera impedire agli utenti di utilizzare le chiavi per l'autenticazione, ma invece utilizzare le password, è necessario aggiungere quanto segue a sshd_config :
PasswordAuthentication yes
PubkeyAuthentication no