Standardmäßig sucht ssh nach id_dsaund id_rsaDateien. Die Schlüssel müssen nicht so benannt werden, Sie können sie mykeygenauso 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. sshfsdie IdentityFileOption:
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-serverdes 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_keysDatei aufgeführt ist. Mögliche Gründe, warum der öffentliche Schlüssel abgelehnt wird:
/etc/ssh/sshd_config:
AllowUsersoder AllowGroupsist 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).
DenyUsersoder DenyGroupsist angegeben und Sie befinden sich in der Benutzer- oder Gruppenliste.
- Sie versuchen, sich als root anzumelden, sind jedoch
PermitRootLoginauf No(Standard yes) gesetzt.
PubkeyAuthenticationist auf No(Standard yes) eingestellt.
AuthorizedKeysFileist 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 2222etc. Auf diese Weise könnten Sie mit der Stenographie verbinden ssh yourhoststatt ssh -p2222 youruser@yourhost -i ~/.ssh/id_dsa -i ~/.ssh/bender.