Я хочу использовать удаленный проводник в VS Code на Windows для доступа к серверу из Ubuntu. Ввод пароля все время раздражает, поэтому я попробовал сгенерировать ключ ssh с помощью ssh-keygen. Ключ отлично работает для обычного пользователя, но я не могу войти как root.
Ошибка cmd (ssh root@<server_ip>):
root@<server_ip>: Permission denied (publickey,password).
Ошибка в /var/log/auth.log
:
sshd[1012327]: Connection reset by authenticating user root <client_ip> port 59021 [preauth]
Во всех решениях, которые я видел, упоминается sshd_config, но в нем включен вход в систему под учетной записью root. sshd_config:
# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
PubkeyAuthentication yes
# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
#AuthorizedPrincipalsFile none
#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody
Я добавил открытый ключ в /home/user/.ssh/authorized_keys
файл. Мне кажется, что этот ключ только для пользователя, но из руководств следует, что я могу использовать его и для root.
Так почему же я не могу подключиться как root?
решение1
Мне кажется, что этот ключ предназначен только для пользователя, но из руководств следует, что его можно использовать и для root.
Проводники ввели вас в заблуждение.
У каждого пользователя есть свой домашний каталог и, следовательно, свой собственный authorized_keys
. Домашний каталог пользователя root обычно /root/
. Поэтому соответствующий файл для входа в систему как root — /root/.ssh/authorized_keys
. Он не имеет ничего общего с /home/user/.ssh/authorized_keys
.
Подумайте об этом. /home/user/.ssh/authorized_keys
принадлежит пользователю user
, который является обычным пользователем и можетили нетиметь доступ sudo. Пользователь может зарегистрировать там любой ключ. Если root использовал тот же файл, то пользователь мог бы войти как root, просто авторизовав какой-то ключ.