Aby korzystać z ssh-id-copy, potrzebujesz zarówno id_rsa.pub, jak i id_rsa?

19

Próbuję skonfigurować drugi klucz dostępu ssh dla znajomego. Wysłał mi swój id_rsa.pub.

ssh-copy-id -i id_rsa.pub [email protected]
/usr/local/bin/ssh-copy-id: ERROR: failed to open ID file './id_rsa': No such file or directory

Czy potrzebuję go, aby przesłał mi oba pliki?


źródło
1
.Pub jest wystarczający. I pamiętaj, że zawsze trzymasz swój klucz prywatny w tajemnicy (przez cały czas!). Aby dodać nowy klucz, możesz po prostu dołączyć zawartość .pub do swoich kluczy autoryzowanych.
deagh
2
@deagh Nie musisz utrzymywać klucza prywatnego w tajemnicy, musisz go zabezpieczyć.
Skrypt ssh-copy-id tutaj nie wydaje się emitować ten konkretny komunikat o błędzie. Zauważyłem, że twój skrypt ssh-copy-id znajduje się w / usr / local / bin. Może różnić się od powszechnie używanej wersji polecenia.
Kenster,

Odpowiedzi:

12

ssh-copy-idKomenda z OpenSSH nie powiedzie, jeśli nie ma pliku klucza prywatnego o tej samej nazwie dostępnej, ponieważ próbuje logowania z określonego klucza, aby sprawdzić, czy jest już obecny na zdalnym serwerze.

W najnowszych wersjach możesz zastąpić to zachowanie -fprzełącznikiem („Tryb wymuszony”).

Ze strony podręcznika :

-f

    Tryb wymuszony: nie sprawdza, czy klucze są obecne na zdalnym serwerze. Oznacza to, że nie potrzebuje klucza prywatnego. Oczywiście może to spowodować zainstalowanie więcej niż jednej kopii klucza w systemie zdalnym.

Dario Seidl
źródło
1
heads up, kolejność parametrów jest ścisła. -ftylko działa zgodnie z oczekiwaniami, jeśli przekazać go przed tym -iargumentem. ssh-copy-id -i mykey.pub -f otheruser@hosttylko narzeka, dopóki nie ruszysz -f z przodu.
init_js
5

To .pubwystarczy. Nie jesteś we właściwym folderze.

Możesz spróbować:

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

(dla użytkownika root: niezalecane, to tylko przykład).

Ten plik znajduje się w .sshfolderze w folderze użytkownika.

Jérémy Munoz
źródło
4
Na Macu, -fjeśli nie masz klucza prywatnego, myślę, że
Stevie G
1

Jak wspomniano tutaj, jest to błąd.

W każdym razie możesz po prostu utworzyć pusty plik, aby działał. W Twoim przypadku:

$ touch ./id_rsa
$ ssh-copy-id -i id_rsa.pub [email protected]

Miałem ten sam problem i to działało dla mnie 👍

jawira
źródło
-1

to działa dla mnie pytanie brzmi, kiedy pyta „Wprowadź plik, w którym chcesz zapisać klucz (/Users/xiaoyu/.ssh/id_rsa):” należy wpisać id_rsa

i użyj komendy „ssh-copy-id -i ~ / .ssh / id_rsa.pub [email protected]

użytkownik984431
źródło