Вот как я сейчас это делаю:
# ssh-keygen -t dsa -b 1024 -f /root/localhost-rsnapshot-key
Enter passphrase (empty for no passphrase): [press enter here]
Enter same passphrase again: [press enter here]
# if [ ! -d ~/.ssh ]; then mkdir ~/.ssh ; chmod 700 ~/.ssh ; fi
# cd ~/.ssh/
# if [ ! -f config ]; then touch config ; chmod 600 config ; fi
# echo Host server2 >> config
# echo Hostname server2.domain.tld >> config
# echo IdentityFile /root/localhost-rsnapshot-key >> config
Теперь, когда я запускаю rsnapshop, например:
backup server2@server2.domain.tld:/home/ localhost/server2/
Получаю следующее:
rsnapshot hourly
reverse mapping checking getaddrinfo for server2-domain-tld.1-2-3-4 [1.2.3.4] failed - POSSIBLE BREAK-IN ATTEMPT!
server2@server2.domain.tld's password:
Есть ли способ запустить это без пароля?
Вы можете запустить команду ssh-copy-id server2@server2.domain.tld
с server1, чтобы скопировать ваш идентификационный файл в удаленную систему и разрешить аутентификацию по общему ключу. Вам также может потребоваться убедиться, что в вашей конфигурации sshd включена аутентификация на основе ключей.
На server2 вам нужно добавить сгенерированный открытый ключ в /root/.ssh/authorized_keys
Прежде всего, подумайте об использовании ключей rsa вместо dsa, хотя я знаю, что это нежелательный совет, rsa более безопасен, чем dsa, если, конечно, у вас нет веских причин для этого.
Позвольте мне начать с того, что я сделаю это, используя стандартную команду unix, такую как scp, cat, chmod, chown и т. Д., Вместо использования более эзотерических команд, таких как ssh-copy-id. Так что вы можете использовать его практически в любом варианте Unix, не только в Linux.
Убирая их после запуска ssh-keygen
В вашем каталоге .ssh есть два файла:
id_dsa
id_dsa.pub
# on the local machine which will connect the remote server without a password
cd ${HOME}/.ssh
scp id_dsa.pub ${REMOTE_SERVER}:${REMOTE_USER_HOME}/.ssh
# if this errors out, you might need to create the .ssh on the remote server
#
# on the remote machine which will accept incoming ssh connection without a password
chown ${REMOTE_USER} ${REMOTE_USER_HOME} # this should already be set like this
chown ${REMOTE_USER} ${REMOTE_USER_HOME}/.ssh # if this exists, it should be this way
chmod 700 ${REMOTE_USER_HOME}
chmod 700 ${REMOTE_USER_HOME}/.ssh
cd ${REMOTE_USER_HOME}/.ssh
cat id_dsa.pub >> ./authorized_keys
chown ${REMOTE_USER} ./authorized_keys
chmod 600 ./authorized_keys
Теперь у вас должна быть возможность подключиться к удаленному компьютеру без пароля.
надеюсь это поможет.
Предполагая, что вы хотите пройти аутентификацию в учетной записи оболочки с именем server2 на хосте с именем server2, вам необходимо добавить содержимое localhost-rsnapshot-key.pub, созданное на server1, в файл server2:/home/server2/.ssh/authorized_keys
файл.
Хотя это уже объяснено в нескольких ответах выше, но если вы ищете более подробную информацию, вы можете обратиться к этой статье.