Я настроил свой сервер, чтобы разрешить аутентификацию ключ / пару, следуя инструкциям, аналогичным тем, что находится в эта почта.
Насколько я могу судить, работает правильно. Например, если я сделаю следующее, все будет работать правильно:
ssh myusername@mydomain.com
Он НЕ запрашивает пароль. Это то, чего я хочу. Однако, если я напишу небольшой сценарий bash, например:
#!/bin/bash -x
ssh myusername@mydomain.com
и выполнить с помощью:
sudo ./mytestscript.sh
... он предложит мне:
myusername@mydomain.com's password:
Что я делаю не так? Мне нужно войти в систему из моего скрипта без запроса пароля!
Я предполагаю, что сценарий работает нормально, если вы запустите его без sudo
. Если это так, то ваша проблема в том, что теперь ssh ищет открытый ключ в домашнем каталоге root, а не в вашем. Добавить -i
к вашей команде ssh, указав путь к настроенному вами ключу, или используйте вместо него открытый ключ root.
Если вы используете ssh-agent
чтобы сохранить расшифрованную версию вашего ключа, а не использовать ключ без парольной фразы, вам также необходимо отредактировать /etc/sudoers
и добавить env_keep+="SSH_AUTH_SOCK SVN_SSH
к Defaults
так что ssh может найти ваш сокет авторизации.