解决xshell连接不上阿里云服务器问题

时间:2024-03-05 14:45:00

 最近购买了阿里云服务器准备玩玩,但是使用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用户所有,其他用户不能有写权限。

最后得出的教训是:不清楚的文件夹不要乱删。