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 admin@vps718449.ovh.net -p 9215

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 admin@vps718449.ovh.net -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 admin@vps718449.ovh.net. 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 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 admin@vps718449.ovh.net -p 9215

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.