解决xshell连接不上阿里云服务器问题
最近购买了阿里云服务器准备玩玩,但是使用xshell连接阿里云服务器时,系统一直提示“Connection established. To escape to local shell, press 'Ctrl+Alt+]'. Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(ALIYUN) at 15:05:08. Type `help' to learn how to use Xshell prompt.”(具体如图1所示),百度搜寻无果,最后只能求助阿里云服务人员,特此记录一下解决过程。
图1
首先从网上查到说是需要检查安全组配置,检查ssh的端口号(22)是否开放,但是我已经开放成功了,还是连接不上。端口开放具体可见下图(图2、图3、图4)
图2
图3
图4
然后网上还有说是需要加IP 白名单,先把IP白名单加起来。IP白名单添加可见附件截图(图5、图6)
图5
图6
网上查到很多解决方法但是都没有用,最后还是客服人员帮忙解决问题的。原因是我在安装mysql时,误将sshd的群组和用户给修改为mysql导致的,最后只需要将sshd的群组和用户修改为root即可。 可通过 chomd 711 sshd 修改。具体可见图7
如果出现Missing privilege separation directory: /var/empty/sshd 解决办法
玖芯科技 昨天在整理服务器的文件时,删了一些没用的空文件夹。并把自己新电脑的公钥配在服务器上。然后尝试ssh登录服务器的时候出问题了:
ssh_exchange_identification: Connection closed by remote host
我擦,登不上去了。我刚开始以为是我公钥配错了,但既没让我输入私钥密码,也没让我输入用户登录密码。这就有点奇怪了。还好云服务器控制台有VNC登录这棵救命稻草。
但是把几个配置文件反复检查了几遍都没啥问题,算了还是重启一下sshd服务,结果连sshd都起不来
[root@host:~]# service sshd restart
Stopping sshd: [ OK ]
Starting sshd: Missing privilege separation directory: /var/empty/sshd
[FAILED]
原来有个/var/empty/sshd文件夹丢失了
查了一下manual:
/var/empty/sshd
chroot(2) directory used by sshd during privilege separation in the pre-authentication phase.
The directory should not contain any files and must be owned by root and not group or world-writable.
/var/empty/sshd目录会在身份认证时用到,这个目录必须是空的,并且必须归root用户所有,其他用户不能有写权限。
最后得出的教训是:不清楚的文件夹不要乱删。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?