Jak dodać klucz RSA do pliku allowed_keys?

90

Utworzyłem klucz publiczny RSA i chcę go dodać do authorized_keyspliku, ale nie ma takiego pliku na moim komputerze z Ubuntu 11.10.

Jak mogę dodać klucz do authorized_keys?

Raji AC
źródło

Odpowiedzi:

105

Wykonując rozwiązanie Michaela Krelina, upewnij się, że wykonujesz następujące czynności

cat <your_public_key_file> >> ~/.ssh/authorized_keys

Zwróć uwagę, że podwójna >bez podwójnej >istniejącej zawartości Authorized_keys zostanie nadpisana (nuked!) I może to nie być pożądane

donden1
źródło
Musisz uwzględnić, jak prawidłowo wyodrębnić informacje klucza publicznego, po prostu skopiowanie i wklejenie ich nie wystarczy. Na przykład:
einarc
4
Czy możesz wyjaśnić, dlaczego kopiowanie / wklejanie nie działa? Jestem szczerze ciekawa.
mcsilvio,
50
mkdir -p ~/.ssh/

Aby nadpisać Authorized_keys

cat <your_key >~/.ssh/authorized_keys

Aby dołączyć na końcu Authorized_keys

cat <your_key >>~/.ssh/authorized_keys
Michael Krelin - haker
źródło
Wygenerowałem klucz po stronie klienta i skopiowałem go na serwer, ale używając polecenia ssh 192.168.2.7 nie pozwala na logowanie.
Raji AC
Nie pozwala się zalogować, mówiąc co?
Michael Krelin - haker
podczas wykonywania tego polecenia prosi o hasło do serwera. chcę zalogować się bez hasła
Raji AC,
Czy identyfikator (część publikacji) znajduje się w ~ / .ssh / authoris_keys na pilocie? Czy identyfikator (część inna niż pub) jest używany przez ssh podczas próby zalogowania się? Możesz spróbować określić to wyraźnie za pomocą -i. Możesz także spróbować ssh -vi sprawdzić uprawnienia swoich autoryzowanych kluczy na pilocie. I sprawdź tam dzienniki.
Michael Krelin - haker
Czy możemy jakoś sprawdzić, czy klucz jest już dodany? Tak, jak robi to ssh-copy-id dla systemu zdalnego
Dmitriusan
32

Wiem, że odpowiadam za późno, ale dla każdego, kto tego potrzebuje, uruchom następujące polecenie z lokalnego komputera

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

to działało doskonale. Wystarczy tylko wymienić

[email protected]

z własnym użytkownikiem dla tego konkretnego hosta

Faisal Sarfraz
źródło
31

W pakiecie ssh jest już polecenie, które zrobi to automatycznie za Ciebie. Oznacza to, że zaloguj się na zdalnym hoście i dodaj klucz publiczny do pliku Authorized_keys tego komputera.

ssh-copy-id -i /path/to/key/file [email protected]

Jeśli instalujesz klucz, ~/.ssh/id_rsamożesz nawet -icałkowicie upuścić flagę.

O wiele lepsze niż robienie tego ręcznie!

tkarls
źródło
2
>ssh user@serverip -p portnumber 
>sudo bash (if user does not have bash shell else skip this line)
>cd /home/user/.ssh
>echo ssh_rsa...this is the key >> authorized_keys
i_tanova
źródło