赞
踩
SSH(Secure Shell)是一种加密的网络协议,用于安全地远程连接到服务器或其他计算设备。它提供了加密的通信信道,以防止敏感信息被窃听或篡改。SSH支持多种身份验证方法,其中之一是密码身份验证。
密码登录是最常见的身份验证方法之一,用户通过输入用户名和密码来进行身份验证。然而,有时候会遇到密码登录失败的问题,导致无法成功连接到目标主机。密码登录问题可能由多种原因引起,包括密码错误、配置问题、认证优先级设置等。
密码登录问题的背景和常见原因 密码登录问题可能出现在以下情况下:
确认输入的密码与目标主机上的密码一致。是否存在拼写错误导致的密码登录失败。
注意区分大小写,并确保没有多余的空格或特殊字符。
可以使用su+用户名
,确认密码是否正确。
SSH服务器的配置文件通常是 /etc/ssh/sshd_config
。
查看配置 PasswordAuthentication
是否为yes
,以启用密码身份验证。如果该行被注释掉(以 # 开头),则将其取消注释并将值设置为 yes。
保存文件并重新启动SSH服务,以使更改生效。、
/etc/pam.d/sshd
,它定义了SSH服务器使用的PAM(Pluggable Authentication Modules)配置。
使用文本编辑器打开该文件,并检查是否有关于密码身份验证的配置项。
找台其他相同版本的服务器,使用md5sum
命令查看md5是否一致,如果不一致,确认是否存在配置被篡改的可能。
查看配置文件/etc/ssh/sshd_config
文件,确保 PasswordAuthentication
选项的值设置为 yes
,以启用密码身份验证。
可能还需要注释掉PubkeyAuthentication
选项,以禁用公钥身份验证。
保存文件并重新启动SSH服务,再次验证SSH是否可以正确使用密码服务。
可以使用命令,指定使用密码登录:
ssh -o PreferredAuthentications=password username@hostname
检查/etc/ssh/sshd_config文件中是否配置PermitRootLogin
,将其修改为yes后,重启sshd服务,确保开启限制root登录。
检查下面所有文件的权限
/etc/ssh/sshd_config
/etc/ssh/ssh_config
> 注意:上述的两个文件不是一个,请核对前确认文件名称
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_dsa_key
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ed25519_key
~/.ssh/authorized_keys
/var/run/sshd.pid
/etc/pam.d/sshd
/etc/hosts.allow 和 /etc/hosts.deny
注意:上述2个文件并非所有系统都具备,请确认操作系统后确认。
使用 -vvv
参数查看详细的SSH连接日志:ssh -vvv username@hostname
检查 SSH 客户端和服务器的版本兼容性
除此之外,也需要确认OpenSSH版本,
命令:ssh -V
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。