SCP з одного сервера на інший без запиту пароля


19

Який найкращий спосіб робити scpз одного поля в інший, не вимагаючи пароля?

Є два сервери:

  • Сервер A (10.152.2.10): /home/oracle/export/files.txt

  • Сервер B (10.152.2.11): /home/oracle/import/

Якщо я хочу перенести файли за допомогою scpсервера А на сервер B, не вимагаючи ввести пароль

[запускається це з сервера A, /home/oracle/export/]

scp files.txt oracle@10.152.2.11:/home/oracle/import

Це підкаже мені пароль при введенні команди.

Я розумію, що потрібно створити і скопіювати кейген на сервер А. Таким чином [на сервері A]:

ssh-keygen -t rsa

Це дає мені два файли, що зберігаються у /home/oracle/.ssh:

id_rsa
id_rsa.pub

1. Чи повинен я скопіювати два файли ( id_rsa, id_rsa.pub) на сервер B /home/oracle/.ssh?

Під час пошуку в Google за цим запитом деякі статті згадували про додавання / об'єднання цього контакту до санкціонованих_кеїв.

2. Чи повинен я створити цей файл самостійно?

Я, мабуть, розгублений у тому, що це правильний спосіб зробити це.

До речі, на двох серверах працює Suse Linux Enterprise Edition 9 ...


1
Спробуйте "брелок": gentoo.org/proj/en/keychain

Відповіді:


16
  1. Ні, ти тримаєш id_rsaсебе; однак, id_rsa.pubякий є вашим відкритим ключем, може бути скопійовано на сервери, до яких ви хочете мати доступ. З’єднайте їх у кінці ~/.ssh/authorized_keys.
  2. Так, ви можете створити, ~/.ssh/authorized_keysякщо він ще не створений; в іншому випадку просто додайте до кінця файлу, використовуючи cat id_rsa.pub >>~/.ssh/authorized_keys.

11

Також є інструмент, який сортує все це для вас ssh-copy-id.

Він додасть ключ у вашому агенті, якщо у вас є один запущений authorized_keysфайл, і створить його, якщо він не існує з правильними дозволами. Якщо у вас немає агента, ви можете вказати ключ, який потрібно натиснути за допомогою -i:ssh-copy-id -i ~/.ssh/id_rsa


5

Ви також повинні перевірити дозволи на різні файли та каталоги:

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

Ваш домашній каталог не повинен писати хтось, крім вас.


0

У випадку, якщо ви налаштували ключ, згенерований з, ssh-keygenале все-таки без передачі пароля, не працює, тоді перевірте відкритий ключ, який використовується на вихідній машині, в команді багатослівного режиму, як показано нижче:

sftp -v -oPort=22 userid@server

Зазвичай це стосується відкритого ключа, /home/<user>/.ssh/id_rsa.pub який може відрізнятися від того, який ви створили за допомогою ssh-keygen. Вам потрібно додати це id_rsa.pubна сервері призначення.


0

Я б зробив наступне:

Про клієнта:

ssh-keygen -t rsa
ssh-copy-id oracle@10.152.2.11

Це копіює ключ від клієнта до сервера. Вам знадобиться пароль сервера, щоб він додав ваш ключ до свого дзвінка.

  • Автентифікацію пароля потрібно або ввімкнути, або вам потрібно вручити доставку файлу ключів на сервер.

На сервері:

Як мінімум, я б вимкнув автентифікацію пароля.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.