最近購買了阿里雲服務器准備玩玩,但是使用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用戶所有,其他用戶不能有寫權限。
最后得出的教訓是:不清楚的文件夾不要亂刪。