Ubuntu无法SSH登陆的解决方案
1. 连接时出现提示 ssh_exchange_identification
问题提示:
ssh_exchange_identification: read: Connection reset by peer
解决方法:
(1)
vim /etc/hosts.allow
加入
sshd: ALL
(2) 然后
systemctl restart sshd
2. 被系统自动加入黑名单导致的无法登陆
Ubuntu18.04中清除DenyHosts中的黑名单IP
(1)
cat /dev/null > /etc/hosts.deny
(2)
vim /etc/hosts.allow
加入你的 IP地址
all:121.36.163.25
(3) 重启 NetworkManager 网络管理工具
sudo systemctl start NetworkManger
或者
sudo service network-manager start
3. 连接超时 (ssh连接超时, 能ping通的情况下)
解决方案:
Ubuntu18.04 完全重装ssh服务
解决方法:
(1) 重装ssh
sudo apt-get remove openssh-server openssh-client --purge -y sudo apt-get autoremove sudo apt-get autoclean sudo apt-get update sudo apt-get install openssh-server openssh-client
(2) 关闭防火墙
ufw disable
说明:
--SSH连接不上的原因有很多,例如:
被防火墙挡掉、SSH服务配置文件中的参数是否拒绝了连接等等.
--SSH连接不上的另外一种可能:
清除/root/.ssh/known_hosts文件中和你所要连接的IP或者主机名有关的ssh加密Key
rm ~/.ssh/known_hosts
4. 故障现象:
重启机器,输入正确的用户名和密码后,登陆进入系统的界面一闪,然后跳回登陆界面
故障说明:
在用户名和密码都输入成功的情况下,重复出现登录界面,无法进入主界面(系统设置为字符界面情况下)
原因分析:
误删了系统文件或者系统文件配置错误所导致, 需要具体问题具体分析, 需要回想重启前的操作
解决方案 (我的误操作为误删了 limits.conf 文件):
(1) limits.conf 被删除, 或者 limits.conf 设置错误导致Linux系统无法ssh登陆
(2) 开机进入单用户模式, 输入root账户密码, 登陆系统
cat /etc/security/limits.conf
vim /etc/security/limits.conf
加入
* soft nofile 65535 * hard nofile 65535
(3) 说明:
参数值不宜过大,总结如下:
nofile是有一个上限的,不能超过(/proc/sys/fs/nr_open,默认1048576)的值.
如果超过,很可能重启之后无法ssh远程连接
5. Ubuntu系统进入单用户模式的方法
若系统无法进入(例如4中所述), 可考虑在单用户模式下修复
(1) 启动系统时长按shift键 (ESC,DEL,F#都可能), 进入grub菜单
(2) 选择recovery模式
(3) 有些系统选择recovery后, 再菜单选择ROOT, 然后输入root账户的密码即可进入系统
(4) 有些系统需要修改里面的linux行, 修改为:
...... rw single init=/bin/bash
ctrl+x退出, 进入单用户模式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!