Wenn der Schlüssel nicht id_rsa heißt, funktioniert er nicht

14

Ich habe einen Schlüssel erstellt, um in SSH eine Verbindung mit einer Passphrase herzustellen. Ich habe meinen Schlüssel benannt id_rsa_admin. Wenn ich mich anmelde, wird die folgende Meldung angezeigtPermission denied (publickey).

In den Logs finde ich, dass ssh nach einer Datei sucht id_rsaund daher nicht die richtige Datei findet.

Ich finde, wenn der Schlüssel nicht benannt ist id_rsa, funktioniert es nicht.

Wie verbinde ich mich in ssh?

~/.ssh/id_rsa_admin

ssh [email protected] -p 9215
Mathieu
quelle

Antworten:

39

Die Antwort von Arronical ist gut für eine einmalige Verbindung, wäre aber auf lange Sicht schmerzhaft. Damit Sie sshdiesen Schlüssel immer verwenden, wenn Sie eine Verbindung zu diesem Server herstellen, können Sie ihn zu Ihrem hinzufügen ~/.ssh/config(oder ihn erstellen, wenn er nicht vorhanden ist):

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin

Dann kannst du dich einfach mit verbinden ssh [email protected] -p 9215. Als zusätzlichen Bonus können Sie auch den Port konfigurieren:

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin
    Port 9215

Dann kannst du dich einfach mit verbinden ssh [email protected]. Noch weiter:

Host vps718449.ovh.net vps
     Hostname vps718449.ovh.net
     User admin
     IdentityFile ~/.ssh/id_rsa_admin
     Port 9215

Dann klappt einfach ssh vps! Natürlich vpsist es nur ein Beispiel, Sie können jeden anderen gewünschten Alias ​​verwenden (zum Beispiel, wenn Sie mehr als einen VPS haben). In finden Sie man ssh_configeine Liste der Optionen, die Sie dort einstellen können.

fkraiem
quelle
@fkraiem danke. Wie mache ich mit drei Schlüsseln?
Mathieu
1
@ Mathieu Warum drei Schlüssel? Wenn es sich um drei verschiedene Hosts handelt, fügen Sie einfach einen Eintrag für jeden Host mit dem entsprechenden Schlüssel hinzu.
Fkraiem
@fkraiem Ich habe 3 verschiedene Schlüssel auf dem gleichen Server, aber für 3 Benutzer
Mathieu
@ Mathieu Ich kann dies derzeit noch nicht bestätigen, aber ich denke, dass das Hinzufügen von drei IdentityFileZeilen im HostAbschnitt funktionieren sollte. Wenn Sie eine UserZeile einfügen, wird dieser Benutzer zum Standard , wenn Sie eine Verbindung zu diesem Host herstellen. Sie können ihn jedoch weiterhin mit überschreiben @.
fkraiem
@fkraiem Vielen Dank. Es funktioniert, aber der folgende Fehler wird angezeigt: "Agent gab zu, dass er nicht mit dem Schlüssel signiert hat". Ich verwende "SSH_AUTH_SOCK = 0", um eine Verbindung herzustellen, aber dies muss bei jedem Neustart durchgeführt werden. Gibt es noch eine andere Begrüßung?
Mathieu
16

Sie müssen die -iOption für Ihren Befehl ssh verwenden, indem Sie den Pfad zu Ihrem Schlüssel verwenden. Der geänderte Befehl lautet:

ssh -i ~/.ssh/id_rsa_admin [email protected] -p 9215
Arronisch
quelle
Danke. In Ihrer Antwort wird der folgende Fehler angezeigt: "ssh: Hostname i konnte nicht aufgelöst werden: Name oder Dienst nicht bekannt"
Mathieu
5
Das Setzen -ivor dem Hostnamen funktioniert auch. Ich denke, @Mathieu hat einfach den Bindestrich vergessen. : p
fkraiem