![无法以 root 身份通过 SSH 登录](https://linux22.com/image/860387/%E6%97%A0%E6%B3%95%E4%BB%A5%20root%20%E8%BA%AB%E4%BB%BD%E9%80%9A%E8%BF%87%20SSH%20%E7%99%BB%E5%BD%95.png)
我正在为我的 Ubuntu 14.04 服务器使用默认安装openssh-server
。我可以像平常一样使用我的用户名和密码通过控制台以 root 身份进行连接。但是,当我尝试使用相同的用户名/密码进行 SSH 时,我反复收到访问被拒绝错误/var/log/auth.log
报告Failed password for root from <ip address> port <port> ssh2
,但我输入了正确的密码。
为什么即使用户名和密码正确,我仍无法通过 SSH 连接到服务器?
答案1
Debian(以及 Ubuntu)中 OpenSSH Server 的默认设置是拒绝 root 的基于密码的登录,而仅允许基于密钥的登录。将以下行更改为/etc/ssh/sshd_config
:
PermitRootLogin without-password
到
PermitRootLogin yes
并重新启动 SSH 服务器:
sudo service ssh restart
答案2
对我来说,工作正在改变(Ubuntu 18.04):
sudo nano /etc/ssh/sshd_config
PermitRootLogin prohibit-password
到PermitRootLogin yes
PasswordAuthentication no
到PasswordAuthentication yes
然后,重新启动 ssh 服务:
sudo service ssh restart
谢谢!
答案3
黑客会利用试图暴力破解的 root 用户进行攻击。如果您要允许 root 登录,则一定要安装 Fail2Ban 或类似程序来防止暴力破解攻击。此外,请使用非常难以猜测的密码,不要使用常用词。
而且,正如 Vaindil 指出的那样,基于密钥的登录方式会更好。它们设置起来并不难。以下是使用 PuTTY 在 Windows 上设置基于密钥的登录方式的链接:https://devops.profitbricks.com/tutorials/use-ssh-keys-with-putty-on-windows/。但如果您使用不同的环境登录,则还有很多其他情况。