Hasło, które można ustawić na kluczu prywatnym, nie jest powiązane z serwerem SSH ani z połączeniem z nim. Ustawienie hasła do klucza prywatnego jest jedynie środkiem bezpieczeństwa, który właściciel klucza może podjąć, aby uniemożliwić dostęp do jego zdalnej powłoki przez osobę trzecią w przypadku kradzieży klucza prywatnego.
Niestety nie można zmusić użytkowników do zabezpieczenia swoich kluczy prywatnych za pomocą haseł. Czasami niezabezpieczone klucze prywatne są wymagane w celu zautomatyzowania dostępu do zdalnego serwera SSH. Jeden dobry zwyczaj ja bardzo polecam dla takich przypadków jest doradzanie użytkownikom hash z known_hosts pliku (przechowywany w ~ / .ssh / known_hosts ), który przechowuje informacje o zdalnych hostach że użytkownik łączy się za pomocą następującego polecenia:
ssh-keygen -H -f ~/.ssh/known_hosts
W ten sposób, nawet jeśli strona trzecia uzyska dostęp do niechronionego klucza prywatnego, niezwykle trudno będzie ustalić, dla których zdalnych hostów ten klucz jest ważny. Oczywiście, wyczyszczenie historii powłok jest obowiązkowe, aby ta technika miała jakąkolwiek wartość.
Inną rzeczą, o której zawsze powinieneś pamiętać, jest to, że root nie może logować się zdalnie, dodając następujące elementy w konfiguracji serwera SSH (sshd_config):
PermitRootLogin no
Z drugiej strony, jeśli chcesz uniemożliwić użytkownikom używanie kluczy do uwierzytelniania, ale zamiast tego używać haseł, powinieneś dodać następujące elementy do swojego sshd_config :
PasswordAuthentication yes
PubkeyAuthentication no