Standardmäßig sucht ssh nach id_dsa
und id_rsa
Dateien. Die Schlüssel müssen nicht so benannt werden, Sie können sie mykey
genauso gut benennen oder sie sogar in einem anderen Verzeichnis ablegen. Wenn Sie jedoch einen dieser Schritte ausführen, müssen Sie den Schlüssel im Befehl ssh wie folgt explizit referenzieren:
ssh user@server -i /path/to/mykey
Wenn ein Befehl nicht akzeptiert wird -i
, verwenden Sie z. B. sshfs
die IdentityFile
Option:
sshfs -o IdentityFile=/path/to/mykey user@host:/path/on/remote /mountpoint
Wie es funktioniert
Beim Generieren eines Schlüssels erhalten Sie zwei Dateien: id_rsa
(privater Schlüssel) und id_rsa.pub
(öffentlicher Schlüssel). Wie der Name schon sagt, sollte der private Schlüssel geheim gehalten und der öffentliche Schlüssel öffentlich veröffentlicht werden.
Die Authentifizierung mit öffentlichem Schlüssel funktioniert mit einem öffentlichen und einem privaten Schlüssel. Sowohl der Client als auch der Server haben ihre eigenen Schlüssel. Bei der Installation openssh-server
des Servers werden öffentliche und private Schlüssel automatisch generiert. Für den Kunden müssen Sie das selbst tun.
Wenn Sie (Client) eine Verbindung mit einem Server herstellen, werden öffentliche Schlüssel ausgetauscht. Sie erhalten einen Server und Ihren Server. Wenn Sie den öffentlichen Schlüssel des Servers zum ersten Mal erhalten, werden Sie aufgefordert, ihn zu akzeptieren. Wenn sich dieser öffentliche Schlüssel im Laufe der Zeit ändert, werden Sie gewarnt, da ein möglicher MITM-Angriff (Man in the middle) stattfindet, der den Datenverkehr zwischen Client und Server abfängt.
Der Server prüft, ob Sie eine Verbindung herstellen dürfen (definiert in /etc/ssh/sshd_config
) und ob Ihr öffentlicher Schlüssel in der ~/.ssh/authorized_keys
Datei aufgeführt ist. Mögliche Gründe, warum der öffentliche Schlüssel abgelehnt wird:
/etc/ssh/sshd_config
:
AllowUsers
oder AllowGroups
ist angegeben, aber Ihr Serverbenutzer ist nicht in der Gruppen- oder Benutzerliste aufgeführt (standardmäßig nicht definiert, wodurch die Anmeldung der Benutzer oder Gruppen nicht eingeschränkt wird).
DenyUsers
oder DenyGroups
ist angegeben und Sie befinden sich in der Benutzer- oder Gruppenliste.
- Sie versuchen, sich als root anzumelden, sind jedoch
PermitRootLogin
auf No
(Standard yes
) gesetzt.
PubkeyAuthentication
ist auf No
(Standard yes
) eingestellt.
AuthorizedKeysFile
ist auf einen anderen Speicherort festgelegt und die öffentlichen Schlüssel werden dieser Datei nicht hinzugefügt (Standardeinstellung .ssh/authorized_keys
, relativ zum Basisverzeichnis)
~/.ssh/authorized_keys
: Ihr öffentlicher Schlüssel wird in dieser Datei nicht hinzugefügt (beachten Sie, dass diese Datei als Root-Benutzer gelesen wird)
Verwendung mehrerer Schlüssel
Es ist nicht ungewöhnlich, mehrere Schlüssel zu verwenden. Anstatt ausgeführt zu werden ssh user@host -i /path/to/identity_file
, können Sie eine Konfigurationsdatei verwenden ~/.ssh/config
.
Allgemeine Einstellungen sind das IdentityFile (die Schlüssel) und der Port. Die nächste Konfiguration überprüft "id_dsa" und "bender" nur, wenn eine Verbindung hergestellt wird mit ssh youruser@yourhost
:
Host yourhost
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/bender
Wenn Sie nichts angeben Host yourhost
, gelten die Einstellungen für alle SSH-Verbindungen. Andere Optionen können auch für dieses Host Spiel angegeben werden, wie User youruser
, Port 2222
etc. Auf diese Weise könnten Sie mit der Stenographie verbinden ssh yourhost
statt ssh -p2222 youruser@yourhost -i ~/.ssh/id_dsa -i ~/.ssh/bender
.