Как настроить SSH-доступ без пароля для пользователя root

Часть 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 так, чтобы он позволял вам запускать команды без пароля.

На этот вопрос дан ответ здесь в двух местах:

Из этих двух я предлагаю разрешить как можно меньше команд (первый ответ), а не все команды (второй ответ).