Xshell连接linux(deepin)时提示ssh服务器拒绝了密码,请再试一次

本文介绍了解决SSH root用户远程登录被拒绝的方法。通过修改sshd_config文件中的PermitRootLogin配置项允许root用户使用密码登录,并重启SSH服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用Xshell root连接时显示ssh服务器拒绝了密码,应该是应该是sshd的设置不允许root用户用密码远程登录
修改 /etc/ssh/sshd_config文件,注意,安装了openssh才会有这个文件,如果文件不存在请检查是否安装了openssh。

vim /etc/ssh/sshd_config

找到

# Authentication:
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes

改成

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

然后输入命令

/etc/init.d/ssh restart 

重启ssh服务即可。

<think>好的,用户遇到了Xshell连接SSH服务器拒绝密码的问题,需要解决方案。首先,我需要回忆常见的SSH登录问题原因,并结合之前的参考资料,特别是关于SELinux的部分。用户之前提到引用[1]中的解决方法是调整SELinux模式,这可能是一个关键点,但也要考虑其他可能性。首先,检查基本配置:确保SSH服务正在运行,端口正确,防火墙没有阻止连接。然后,确认用户名和密码是否正确,包括大小写和键盘布局问题。接着,查看SSH配置文件/etc/ssh/sshd_config,检查是否允许密码认证,以及是否限制了用户或IP地址。 然后,考虑SELinux的影响。引用[1]提到enforcing模式可能导致问题,所以建议用户临设置为permissive测试。如果有效,可能需要调整SELinux策略或保持模式更改,但需注意永久设置的方法。 此外,可能需要检查日志文件,如/var/log/secure或auth.log,查看具体的拒绝原因。比如,是否触发了pam模块的安全策略,或者有fail2ban等工具封锁了IP。 还要想到公钥认证的问题,如果用户之前配置过密钥登录,可能密码登录被禁用,但用户可能不知道这点。需要指导用户检查PubkeyAuthentication的设置。另外,用户可能没有提到的是,是否在服务器上更改过密码后未重启SSH服务,或者磁盘空间不足导致无法验证。这些也是潜在因素。最后,确保用户按照步骤操作,每一步都明确,避免遗漏。比如,修改SELinux后需要临和永久两种方式,同提醒用户生产环境中谨慎处理SELinux设置,避免安全风险。总结可能的原因和对应的解决步骤,按逻辑顺序排列,从简单到复杂,帮助用户逐步排查问题。同生成相关问题,覆盖更深层的配置和优化,比如SELinux策略调整,密钥登录配置等。</think>### Xshell SSH连接密码被拒解决方案 #### 1. **基础排查步骤** - **确认SSH服务状态** 在服务器执行 `systemctl status sshd` 检查SSH服务是否运行。若未启动,使用 `systemctl start sshd`[^1]。 - **检查防火墙配置** 确保服务器防火墙(如firewalld/iptables)开放了SSH端口(默认22): ```bash firewall-cmd --list-ports | grep 22 # firewalld检查 iptables -L -n | grep 22 # iptables检查 ``` #### 2. **验证登录凭据** - **密码正确性测试** 在服务器本地尝试用相同密码登录(避免键盘布局/大小写错误): ```bash su - 用户名 ``` - **检查SSH配置文件** 编辑 `/etc/ssh/sshd_config`,确认以下参数: ```config PasswordAuthentication yes # 允许密码登录 PermitRootLogin yes # 若需root登录 AllowUsers 用户名 # 检查用户白名单 ``` #### 3. **SELinux策略调整(关键步骤)** - **临切换SELinux模式** 在服务器执行: ```bash setenforce 0 # 切换为permissive模式(仅记录不拦截) ``` 随后用Xshell重新尝试连接。若成功,表明SELinux策略拦截了SSH求[^1]。 - **永久修改SELinux模式** 编辑 `/etc/selinux/config`,设置: ```config SELINUX=permissive ``` 重启服务器生效。 #### 4. **日志分析定位问题** - **查看SSH登录日志** 在服务器执行: ```bash tail -f /var/log/secure # CentOS/RHEL tail -f /var/log/auth.log # Ubuntu/Debian ``` 观察拒绝密码的具体错误代码(如`Permission denied`或`SElinux context check failure`)。 #### 5. **高级场景处理** - **文件权限修复** 若SELinux导致问题,重置SSH相关文件上下文: ```bash restorecon -Rv /etc/ssh # 修复SELinux上下文 ``` - **密钥登录替代方案** 生成SSH密钥对避免密码依赖: ```bash ssh-keygen -t ed25519 # 客户端生成密钥 ssh-copy-id 用户名@服务器IP # 上传公钥 ```
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值