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

19

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

Есть два сервера:

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

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

Если я хочу передать файлы scpс сервера А на сервер Б без запроса ввода пароля

[запустив это с сервера A, /home/oracle/export/]

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

Это запросит у меня пароль при вводе команды.

Я понимаю, что кейген должен быть сгенерирован и скопирован на сервер А. Таким образом [на сервере А]:

ssh-keygen -t rsa

Это дает мне два файла, хранящихся в /home/oracle/.ssh:

id_rsa
id_rsa.pub

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

При поиске в Google по этому поводу в некоторых статьях упоминалось о добавлении / объединении этого элемента в authorized_keys.

2. Должен ли я создать этот файл самостоятельно?

Кажется, я не совсем понимаю, как правильно это сделать.

Кстати, два сервера работают под управлением Suse Linux Enterprise Edition 9 ...

jimmij
источник
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.
mipadi
источник
11

Также есть инструмент, который сортирует все это для вас называется ssh-copy-id.

Он добавит ключ в ваш агент, если он у вас есть, authorized_keysи создаст его, если он не существует с необходимыми разрешениями. Если вы не запускаете агент, вы можете указать ключ для нажатия -i:ssh-copy-id -i ~/.ssh/id_rsa

mauilion
источник
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

Это копирует ключ с клиента на сервер. Вам понадобится пароль сервера, чтобы он добавил ваш ключ в свое кольцо.

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

На сервере:

Я бы, по крайней мере, отключил аутентификацию по паролю.

Майкл Прокопец
источник