28 Mar 2010
SSH: dem Server via Schlüssel für einen passwortlosen Login vertrauen
Wenn man einen erzeugten privaten Schlüssel auf den Remote-Server kopiert, kann man sich in Zukunft ohne Passwort einloggen:
Dazu auf dem eigenen Gerät dies ausführen:
local:~# ssh-keygen -t dsa
Den erzeugten Public-Key auf den Remote Host kopieren, und zur authorized_keys Datei hinzufügen:
local:~# scp ~/.ssh/id_dsa.pub remote_host:/
local:~# ssh remote_host
remote_host:~# touch ~/.ssh/authorized_keys
remote_host:~# cat id_dsa.pub >> ~/.ssh/authorized_keys
remote_host:~# rm id_dsa.pub
Alternative Möglichkeit, um dies zu tun:
cat ~/.ssh/*.pub | ssh user@remote-system 'umask 077; cat >> ~/.ssh/authorized_keys'
Komfortabel ist es, wenn man das Programm ssh-copy-id besitzt:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-system
Update 2019: Der ursprüngliche Eintrag ist vom Jahr 2010, mittlerweile wird DSA als potentiell unsicher eingestuft, bitte ECDSA verwenden! Vorher aber überprüfen, ob alle Geräte das können, und SSH aktualisieren.
- Abhilfe bei dieser Fehlermeldung: Could not open a connection to your authentication agent
Szenario:
[chrissie@gliese1 ~]$ ssh-copy-id new.server.example.com
Could not open a connection to your authentication agent.
no keys found
- Erklärung des Fehlers
Der SSH-Agent muss im Hintergrund gestertet werden, und der private Schlüssel muss zum ssh-Agenten hinzugefügt werden
- Abhilfe mit C-Shell:
[chrissie@gliese1 ~]$ eval "$(ssh-agent -s)"
Agent pid 27018
[chrissie@gliese1 ~]$ ssh-add
Identity added: /home/chrissie/.ssh/id_rsa (chrissie@gliese1)
[chrissie@gliese1 ~]$ ssh-copy-id new.server.example.com
Password for chrissie@new.server.example.com:
- Abhilfe mit Bash:
[chrissie@gliese1 ~]$ eval `ssh-agent -s`
Agent pid 27195
[chrissie@gliese1 ~]$ ssh-add
Identity added: /home/chrissie/.ssh/id_rsa (chrissie@gliese1)
[chrissie@gliese1 ~]$ ssh-copy-id new.server.example.com
Password for chrissie@new.server.example.com: