Мне нужно создать cron-скрипт, который будет передавать все журналы с одного компьютера на машину для анализа журналов, но когда я scp, меня просят ввести пароль. Обычно, когда я подключаюсь к серверам с помощью Putty, я использую pageant
и Putty, чтобы разрешить переадресацию агента, и когда я выбираю машину, к которой хочу подключиться, она открывает окно Putty и направляет меня прямо в оболочку без необходимости вставлять пароль. Это происходит после того, как я вставляю свой открытый ключ rsa в файл .ssh / authorized_keys на каждой машине.
Я бы хотел сделать то же самое, но между двумя серверами.
Изменить: я не знаю, почему он был отклонен ... я думаю, что это законный вопрос. Подскажите пожалуйста, что я делаю не так:
[root@search-uk-1 .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ca:ab:4d:95:a4:ee:47:67:0c:e1:23:f3:73:46:67:7e root@search-uk-1.int.incredimail.com
The key's randomart image is:
+--[ RSA 2048]----+
| |
| . |
| ... |
| oo+.. o |
| .+S= + |
| o o+ * . E |
| =. * . |
| + .. |
| ..+. |
+-----------------+
[root@search-uk-1 .ssh]# ssh-copy-id root@sawmill
root@sawmill's password:
Now try logging into the machine, with "ssh 'root@sawmill'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[root@search-uk-1 .ssh]# ssh root@sawmill
Enter passphrase for key '/root/.ssh/id_rsa':
Last login: Mon Nov 5 11:32:33 2012 from search-uk-1.int.incredimail.com
[root@sawmill ~]# exit
logout
Connection to sawmill closed.
[root@search-uk-1 .ssh]# ssh root@sawmill
Enter passphrase for key '/root/.ssh/id_rsa':
Даже если я скопирую ключ rsa из файла .pub и вставлю его на удаленную машину .ssh / authorized_keys, он все равно будет запрашивать у меня пароль.
Спасибо
Все очень просто. Создайте на машине свой rsa_id с помощью ssh-keygen -t rsa
После этого просто выполните ssh-copy-id login@secondmachine
поставить пароль вот и все. После этого вы сможете войти без пароля с одной машины на другую (если вы хотите войти в систему без пароля с обеих машин, вам следует проделать те же шаги на второй машине).
Но, возможно, вам стоит подумать об использовании rsync для этой работы. Использовать пароль для rsync в cronjobs очень просто с помощью переменных среды USER и RSYNC_PASSWORD. Поместите это в свой сценарий
export USER=nameofrsyncuser
export RSYNC_PASSWORD=password
после этого любая команда rsync будет использовать эти переменные. Это намного безопаснее, потому что пользователь rsync не является пользователем системы. Вам нужно будет настроить серверы rsync, но это очень просто. И вы можете защитить общий ресурс rsync, используя директиву host allow в конфигурации rsync.
На каждом сервере запускается учетная запись пользователя ssh-keygen
(осторожно, чтобы не перезаписать). Это создаст общедоступные и частные ключи ssh в ~ / .ssh. Возьмите ключ с именем id-rsa.pub по умолчанию и поместите его в файл ~ / .ssh / authorized_keys на другом сервере. И наоборот.