SCP z jednego serwera na drugi bez pytania o hasło

19

Jaki jest najlepszy sposób na przechodzenie scpz jednego pudełka do drugiego bez pytania o hasło?

Istnieją dwa serwery:

  • Serwer A (10.152.2.10): /home/oracle/export/files.txt

  • Serwer B (10.152.2.11): /home/oracle/import/

Jeśli chcę przenieść pliki przy użyciu scpz serwera A na serwer B bez konieczności podawania hasła

[uruchamiając to z serwera A /home/oracle/export/]

scp files.txt [email protected]:/home/oracle/import

Po wprowadzeniu polecenia wyświetli się monit o podanie hasła.

Rozumiem, że należy wygenerować keygen i skopiować go na serwer A. Zatem [na serwerze A]:

ssh-keygen -t rsa

To daje mi dwa pliki przechowywane w /home/oracle/.ssh:

id_rsa
id_rsa.pub

1. Czy mam skopiować dwa pliki ( id_rsa, id_rsa.pub) na serwer B /home/oracle/.ssh?

Podczas wyszukiwania google na ten temat, niektóre artykuły wspomniały o dodawaniu / łączeniu tego z uprawnionymi kluczami.

2. Czy powinienem utworzyć ten plik sam?

Wydaje mi się, że jestem zdezorientowany co do tego, jak to zrobić.

Przy okazji, na dwóch serwerach działa Suse Linux Enterprise Edition 9 ...

jimmij
źródło
1
Wypróbuj „keychain”: gentoo.org/proj/en/keychain

Odpowiedzi:

16
  1. Nie, trzymaj się id_rsadla siebie; jednak, id_rsa.pubktóry jest twoim kluczem publicznym, może zostać skopiowany na serwery, do których chcesz mieć dostęp. Połącz je na końcu ~/.ssh/authorized_keys.
  2. Tak, możesz utworzyć, ~/.ssh/authorized_keysjeśli jeszcze nie został utworzony; w przeciwnym razie wystarczy dołączyć do końca pliku, używając cat id_rsa.pub >>~/.ssh/authorized_keys.
mipadi
źródło
11

Istnieje również narzędzie, które sortuje to wszystko dla ciebie o nazwie ssh-copy-id.

Dołącza klucz w twoim agencie, jeśli masz go uruchomionego do authorized_keyspliku i tworzy go, jeśli nie istnieje z odpowiednimi uprawnieniami. Jeśli nie korzystasz z agenta, możesz określić klucz do wypychania -i:ssh-copy-id -i ~/.ssh/id_rsa

mauilion
źródło
5

Powinieneś także sprawdzić uprawnienia do różnych plików i katalogów:

authorized_keys needs perms of 600 (chmod 600 authorized_keys)
the .ssh directory should be 700
your home directory should be at most 744

Twój katalog domowy nie może być zapisywany przez nikogo innego niż ty.

dr-jan
źródło
0

Jeśli skonfigurujesz klucz wygenerowany z, ssh-keygenale nadal nie działa przesyłanie mniej hasła, sprawdź klucz publiczny używany na maszynie źródłowej w trybie pełnym, jak poniżej:

sftp -v -oPort=22 userid@server

Zwykle odnosi się do klucza publicznego, przy /home/<user>/.ssh/id_rsa.pub którym może różnić się od klucza wygenerowanego za pomocą ssh-keygen. Musisz dodać to id_rsa.pubna serwerze docelowym.

Raj
źródło
0

Zrobiłbym następujące:

Na kliencie:

ssh-keygen -t rsa
ssh-copy-id [email protected]

Spowoduje to skopiowanie klucza z klienta na serwer. Będziesz potrzebował hasła do serwera, aby dodać swój klucz do pierścienia.

  • Uwierzytelnianie hasła albo musi być włączone, albo trzeba ręcznie dostarczyć plik klucza na serwer.

Na serwerze:

Chciałbym przynajmniej wyłączyć uwierzytelnianie hasła.

Michael Prokopec
źródło