Часть 1 : SSH-ключ без пароля
Чтобы настроить SSH-соединение без пароля для пользователя root, вам необходимо иметь root-доступ на сервере. Самый простой способ - это временно разрешить root входить в систему по ssh с помощью пароля. Так или иначе, для этого вам нужен root-доступ на сервере. Если у вас нет root-доступа на сервере, обратитесь за помощью к администратору сервера.
На клиенте (откуда вы подключаетесь ПО ssh)
Сначала создайте ssh-ключ без пароля. Я настоятельно рекомендую вам дать ему имя, а не использовать значение по умолчанию
ssh-keygen -f foo
Параметр -f указывает имя файла, foo является примером, используйте любое имя, которое вы пожелаете.
Когда вам будет предложено ввести пароль, просто нажмите клавишу enter, и вы сгенерируете ключ без пароля.
Далее вам нужно передать ключ на сервер. Самый простой способ - использовать ssh-copy-id
. Для этого вы должны временно разрешить root подключаться к серверу по ssh.
На сервере (куда вы ПОДКЛЮЧАЕТЕСЬ ПО ssh)
редактировать /etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
Убедитесь, что вы разрешаете root входить в систему со следующим синтаксисом
PasswordAuthentication yesPermitRootLogin yes
Перезагрузите сервер
sudo service ssh restart
Установите пароль root, используйте надежный пароль
sudo passwd
На клиенте :
От клиента передайте ключ на сервер
ssh-copy-id -i ~/.ssh/foo root@server
измените "foo" на имя вашего ключа и введите пароль root вашего сервера, когда его спросят.
Проверьте ключ
ssh -i ~/.ssh/foo root@server
Предполагая, что это работает, сбросьте пароль root и отключите вход с паролем.
На сервере :
sudo passwd -l root
Редактировать /etc/ssh/sshd_config
sudo nano `/etc/ssh/sshd_config`
Измените следующее :
PasswordAuthentication noPermitRootLogin without-password
Перезагрузите сервер
sudo service ssh restart
На клиенте (Тест):
Теперь вы должны иметь возможность входить по ssh со своим ключом без пароля, и вы не должны иметь возможности входить по ssh как любой пользователь без ключа.
ssh -i ~/.ssh/foo root@server
Часть 2: Выполнение команд через sudo без ввода пароля
Вы настраиваете sudo так, чтобы он позволял вам запускать команды без пароля.
На этот вопрос дан ответ здесь в двух местах:
Из этих двух я предлагаю разрешить как можно меньше команд (первый ответ), а не все команды (второй ответ).