Чтобы настроить SSH-соединение без пароля для пользователя root, вам необходимо иметь root-доступ на сервере. Самый простой способ — это временно разрешить root входить в систему по ssh с помощью пароля. Так или иначе, для этого вам нужен root-доступ на сервере. Если у вас нет root-доступа на сервере, обратитесь за помощью к администратору сервера.
Далее даётся рекомендация как сделать новый ключ для подключения к серверам от пользователя root, и эти ключи хранить у себя только для доступа к своим серверам. Заметьте, не свой ключ, своего пользователя, а именно выделенный для этого отдельный ключ. Но почитав ниже, вы сможете понять как сделать так, чтобы было удобнее для вас.
На клиенте (откуда вы подключаетесь по ssh)
Сначала создайте ssh-ключ без пароля. Я настоятельно рекомендую вам дать ему имя, а не использовать значение по умолчанию
ssh-keygen -f foo
Параметр -f указывает имя файла, foo является примером, используйте любое имя, которое вы пожелаете. Ну например: ~/.ssh/id_root
Для особо одарённых покажу пример моего варианта: ssh-keygen -f ~/.ssh/id_root
Когда вам будет предложено ввести пароль, просто нажмите клавишу enter, и вы сгенерируете ключ без пароля.
Далее вам нужно передать ключ на сервер.
Самый простой способ — использовать ssh-copy-id.
Для этого вы должны временно разрешить root подключаться к серверу по паролю ssh. Если это временное разрешение ходить по паролю вы оставите, то через некоторое время, вместе с вами будет весь мир подключаться к вашему серверу.
На сервере (куда вы подключаетесь по ssh)
Редактируйте /etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
Здесь предложен редактор nano, который есть в каждом Ubuntu-Server. Комбинация клавиш, чтобы Сохранить [CTRL+O], Выйти [CTRL+X].
И совет: читайте справку, чтоб знать что нажимать.
Убедитесь, что вы разрешаете root входить по паролю в систему со следующим синтаксисом:
PermitRootLogin yes
PasswordAuthentication yes
Перезагрузите сервис ssh
sudo service sshd restart
Установите пароль root, используйте надежный пароль (типа такого по сложности, но не именно такой же ;-) U3MiXX^&G@aaX73M )
sudo passwd
На клиенте:
От клиента передайте ключ на сервер:
ssh-copy-id -i ~/.ssh/foo root@ip-server
Измените «foo» на имя вашего ключа и введите пароль root вашего сервера, когда его спросят. Также здесь и далее «ip-server» это ip-адрес вашего сервера.
Проверьте вход с вашим ключом:
ssh -i ~/.ssh/foo root@ip-server
Предполагая, что это работает, сбросьте пароль root и отключите вход с паролем.
Это сделать на сервере:
sudo passwd -l root
Редактируйте /etc/ssh/sshd_config:
sudo nano `/etc/ssh/sshd_config`
Всегда делайте резервную копию редактируемых файлов конфигураций чего-либо.
Измените следующее (раскомметируйте):
PermitRootLogin without-password
PasswordAuthentication no
Рекомендуется всегда держать открытое окно с действующим соединением, на всякий случай, если в том где вы проводите настройки, что-то не получится. То через это резервное соединение вы сможете, что-то вернуть.
Перезагрузите сервис ssh:
sudo service sshd restart
На клиенте:
Теперь вы должны иметь возможность входить по ssh со своим ключом без пароля, и вы не должны иметь возможности входить по ssh как любой пользователь без ключа.
ssh -i ~/.ssh/foo root@ip-server
Пожалуй всё.
P.S. Простите за словоблудие, просто особо одарённые пользователи из мира винды просили тут немного больше пояснений.