Назад | Перейти на главную страницу

Безопасная настройка ключа SSH для запуска SCP / rsync без пароля

Вот как я сейчас это делаю:

# 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 файл.

Хотя это уже объяснено в нескольких ответах выше, но если вы ищете более подробную информацию, вы можете обратиться к этой статье.

Вход без пароля