Ich habe meinen öffentlichen / privaten Schlüssel eingerichtet, weiß aber nicht, wohin er gehen soll. Sollten beide Dateien in für meinen Benutzer?
Antwort
Der private Schlüssel bleibt zu Hause. Der öffentliche Schlüssel wird übertragen:
- Platzieren Sie Ihren privaten Schlüssel in
~/.ssh
(lokaler Host). Normalerweise ist dies~/.ssh/id_rsa
. - Platzieren Sie Ihren öffentlichen Schlüssel in
~/.ssh/authorized_keys
(Remote-Host).
Während der erste Schritt normalerweise automatisch ausgeführt wird, wenn Sie den erstellen Schlüssel, der zweite kann erreicht werden durch:
$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost
Wenn Sie eine Restkonfiguration bezüglich des Remote-Hosts haben, kann dies zu Problemen führen (Authentifizierung fehlgeschlagen) oder „zu viele Authentifizierungsfehler“ ). Um dieses Problem zu beheben, können Sie ssh-copy-id
zwingen, die Kennwortauthentifizierung zu verwenden mit:
$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost
Natürlich o Wenn Ihre Schlüssel korrekt platziert sind, ist kein Kennwort mehr erforderlich:
$ ssh user@remotehost
Möglicherweise möchten Sie auch eine SSH-Konfiguration in , um es noch einfacher zu machen:
Host [custom name for the remote machine] Hostname [remote hostname or IP] User [remote username] IdentityFile /home/[your local user]/.ssh/id_rsa
Dank dessen können Sie einfach Folgendes eingeben, um sich beim Remote-Host anzumelden:
$ ssh [custom name for the remote machine]
Bearbeiten: Wenn beide Computer (lokal und remote) identisch sind, können Sie das Verfahren vereinfachen mit:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Hiermit wird Ihr öffentlicher Schlüssel an die Datei authorized_keys
angehängt. Eine andere Möglichkeit, sich als jemand anderes auf Ihrem lokalen Computer anzumelden, besteht darin, Folgendes zu verwenden:
$ su [another user]
Dadurch wird die SSH-Transaktion dort gespeichert, wo Sie sie möglicherweise nicht benötigen . Passwortlos su
kann mit sudo
eingerichtet werden:
$ sudo -iu [another user]
Kommentare
- Ist dies dasselbe, wenn ich
ssh localhost
? - @MrDuk In diesem Fall sind sowohl das lokale als auch das Remote-Ende derselbe Computer. Daher muss sich Ihr öffentlicher Schlüssel lokal in
~/.ssh/authorized_keys
befinden. Hierfür können Sie einfachcat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
verwenden. Ich habe meine Antwort bearbeitet. - Vielleicht haben sich die Dinge seit Ihrer Antwort geändert, aber ich musste Ihrem ersten Befehl eine
-i
hinzufügen, damit der gesamte Befehl wie$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost
.