Jeśli klucz nie ma nazwy id_rsa, nie działa

14

Stworzyłem klucz do połączenia w SSH za pomocą hasła. Nazwałem mój klucz id_rsa_admin. Po zalogowaniu wyświetla się następujący komunikatPermission denied (publickey).

W dziennikach stwierdzam, że ssh szuka pliku id_rsai dlatego nie znajduje odpowiedniego pliku.

Uważam, że jeśli klucz nie jest nazwany id_rsa, nie działa.

Jak połączyć się w ssh?

~/.ssh/id_rsa_admin

ssh [email protected] -p 9215
Mathieu
źródło

Odpowiedzi:

39

Odpowiedź Arronical jest dobra na jednorazowe połączenie, ale na dłuższą metę byłaby bolesna. Aby sshzawsze używać tego klucza podczas łączenia się z tym serwerem, możesz dodać go do swojego ~/.ssh/config(lub utworzyć go, jeśli nie istnieje):

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

Następnie możesz połączyć się z just ssh [email protected] -p 9215. Jako dodatkowy bonus możesz również skonfigurować port:

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

Następnie możesz połączyć się z just ssh [email protected]. Nawet dalej:

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

Wtedy po prostu ssh vpszadziała! Oczywiście vpsjest to tylko przykład, możesz użyć dowolnego innego aliasu (na przykład, jeśli masz więcej niż jeden VPS). Zobacz man ssh_configlistę opcji, które możesz tam ustawić.

fkraiem
źródło
@fkraiem dziękuję. Jak zrobić z trzema kluczami?
Mathieu
1
@Mathieu Dlaczego trzy klucze? Jeśli dotyczy trzech różnych hostów, po prostu dodaj jeden wpis dla każdego hosta, każdy z odpowiednim kluczem.
fkraiem
@fkraiem Mam 3 różne klucze na tym samym serwerze, ale dla 3 użytkowników
Mathieu
@Mathieu Nie mogę tego teraz potwierdzić, ale myślę, że dodanie trzech IdentityFilewierszy w Hostsekcji powinno działać. Ponadto, jeśli wstawisz Userlinię, ten użytkownik stanie się domyślny podczas łączenia się z tym hostem, ale nadal możesz go zastąpić za pomocą @.
fkraiem
@fkraiem Dziękuję bardzo. Działa, ale wyświetlany jest następujący błąd „Agent przyznał, że nie podpisał się przy użyciu klucza”. Do połączenia używam „SSH_AUTH_SOCK = 0”, ale należy to zrobić przy każdym ponownym uruchomieniu. Czy jest jeszcze jakieś powitanie?
Mathieu,
16

Musisz użyć tej -iopcji do polecenia ssh, używając ścieżki do klucza. Zmodyfikowane polecenie będzie:

ssh -i ~/.ssh/id_rsa_admin [email protected] -p 9215
Arroniczny
źródło
Dziękuję Ci. Wraz z odpowiedzią wyświetlany jest następujący błąd „ssh: Nie można rozwiązać nazwy hosta i: Nazwa lub usługa nieznana”
Mathieu
5
Umieszczanie -iprzed nazwą hosta również działa; Myślę, że @Mathieu po prostu zapomniałem łącznika. : p
fkraiem