Jak skonfigurować ssh aby nie trzeba było wpisywać hasła
Można utworzyć klucz uwierzytelniający RSA aby logować się do zdalnego systemu z bieżącego konta bez wpisywania hasła.
Należy pamiętać, że jeżeli po ustawieniu takiej konfiguracji intruz włamie się do systemu, zdobędzie także dostęp do miejsc, do których pozwolono na logowanie się bez podawania hasła. Z tego względu nigdy nie należy tego robić z konta root.
- Należy uruchomić na swoim komputerze
ssh-keygen(1)
i naciśnąć klawisz enter kiedy pojawi się pytanie o hasło.
Spowoduje to wygenerowanie klucza prywatnego i publicznego. W starszej wersji SSH zostaną one zapisane w plikach~/.ssh/identity
i~/.ssh/identity.pub
; w nowszej wersji zostaną one zapisane w plikach~/.ssh/id_rsa
i~/.ssh/id_rsa.pub
. - Następnie należy dodać zawartość klucza publicznego do pliku
~/.ssh/authorized_keys
na zdalnej maszynie (plik powinien mieć ustawione uprawnienia na 600).
Dla deweloperów, którzy chcą mieć dostęp do systemów debian.org przy użyciu tego klucza istnieje możliwość propagowania klucza do wszystkich maszyn debian.org. Zobacz dokumentację LDAP gateway.
Po wykonaniu powyższych kroków będzie można zalogować się do zdalnego serwera przy użyciu ssh bez pytania o hasło.
Ważne: Należy pamiętać, że wszyscy, którzy
mają prawo do czytania pliku z kluczem prywatnym mogą użyć go
aby dostać się do zdalnej maszyny w ten sam sposób - czyli bez
podawania hasła. Dotyczy to wszystkich osób, które mają prawa roota
na lokalnej maszynie. Z tego powodu, jeżeli na lokalnej maszynie
są inne osoby z prawami roota, zalecamy użycie hasła do klucza
prywatnego.
Można użyć ssh-agent(1)
i ssh-add(1)
aby wpisać hasło tylko raz i móc używać określonego klucza
przez cały czas trwania sesji. Można też automatycznie załadować
wszystkie klucze do agenta poprzez dodanie następujących linii
do pliku ~/.xsession
:
# if use-ssh-agent is specified in /etc/X11/Xsession.options # (this is the default) then you need only the second line # eval ssh-agent ssh-add <plik-z-kluczem-ssh>
Aby uruchomić polecenie ssh-add
poza terminalem
należy zainstalować pakiet ssh-askpass
.