今天本来想在A服务器上传文件给B服务器的结果发现明明给root用户设置了密码就是远程登陆不了,后来才发现在容器中很多服务都是没有的,所以刚安装后忘记了修改配置文件,导致远程登陆失败。
报错:
解决方法:
在/etc/ssh/sshd_config配置文件中添加PermitRootLogin yes和PasswordAuthentication yes
记得重启sshd服务
systemctl restart sshd
修改后成功登陆
知识点
PermitRootLogin yes
PermitRootLogin yes
表示允许以root用户身份通过SSH协议远程登录到服务器。当设置为 yes
时,root用户可以使用其密码或公钥认证方式(如SSH密钥对)来远程登录。在许多Linux发行版中,出于安全考虑,初始默认设置可能会禁用root用户的远程登录,即配置为 PermitRootLogin no
。
启用此选项需谨慎,因为直接允许root用户远程登录通常被认为是安全隐患,因为root用户具有对系统的完全控制权。如果必须允许root登录,强烈建议配合其他安全措施,比如:
- 使用强密码或只允许基于公钥的身份验证(通过修改
PubkeyAuthentication
和PasswordAuthentication
设置实现)。 - 限制可访问IP范围(通过
AllowUsers
或DenyUsers
设置)。 - 启用防火墙规则和入侵检测系统。
- 定期更新系统和软件以防止已知漏洞被利用。
PasswordAuthentication yes
PasswordAuthentication yes
指定SSH服务器接受基于密码的用户身份验证。当设置为 yes
,用户可以通过输入他们的账户密码来完成SSH登录过程。如果设置为 no
,则仅允许使用非密码方法(如公钥认证)进行登录。
启用密码认证也应考虑到安全风险,因为弱密码或密码泄露可能导致未经授权的访问。为了增强安全性,可以采取以下措施:
- 要求所有用户使用强密码,并定期更换。
- 配置SSH服务器使用公钥认证作为首选方法,同时保留密码认证作为备用(对于某些用户可能更方便)。
- 如果可能,启用双因素认证(2FA)以增加额外的安全层。
综上所述,在 /etc/ssh/sshd_config
文件中设置 PermitRootLogin yes
和 PasswordAuthentication yes
是为了允许root用户通过密码远程登录到服务器。但请注意,这样做会降低系统的整体安全性,应在充分理解风险并采取适当补偿措施的前提下进行。完成配置更改后,通常需要执行 systemctl restart sshd
(或 service sshd restart
在某些系统上)来使配置更改生效。