服務器能ping通,但用FinalShell連接不上

昨天因爲學習需要,把服務器借給了同學使用。昨天晚上我再嘗試使用FinalShell登陸服務器的時候,服務器顯示Session.connect: java.net.ConnectException: Connection,已經連接不上服務器了。今天早上問了一下同學,他卻可以連接服務器。初步推測應該不是同學的誤操作,可能是我電腦的問題。

一、問題描述

  1. 其他人能夠使用FinalShell登陸服務器,我登陸不了
  2. 我用ping工具測試服務器地址,可以ping通
  3. 我的Finalhell報錯Connection closed
  4. 服務器的22端口和sshd服務都確定已經打開了
  5. 嘗試使用putty以及Xftp,都連接不上服務器

二、解決方式

2.1 首先需要想辦法連接到服務器

我這邊用的是阿里雲服務器,登陸阿里雲後臺可以使用控制檯的遠程連接登陸服務器。
圖1 阿里雲遠程連接

2.2 參考這篇博客

登陸之後使用嘗試了這篇博客的方法。

  1. 查看22端口狀態,確定端口是在監聽的
  2. 查看ssh狀態,確定sshd正在運行
  3. 執行systemctl stop firewalld.sercive關閉防火牆。出現報錯,沒有firewalld服務。。。
  4. 執行ll /var/empty/,不存在/var/empty/目錄。。。
  5. 刪除了/root/.ssh/known_hosts文件
  6. 編輯/etc/ssh/sshd_config文件,將其中的X11Forwarding yes改爲了X11Forwarding no
  7. 重啓服務器

沒用啊,FinalShell還是連不上服務器。。。。

2.3 嘗試使用Linux終端的SSH連接

實在沒辦法了,我嘗試在Linux終端裏,用ssh username@server_ip的方式連接服務器。效果如下。
圖2 SSH方式連接服務器
可以看到,終端也給出了警告信息,還說什麼存在中間人攻擊,無語了。。。。

這個警告給出瞭解決方案:ssh-keygen -f "/home/zhj/.ssh/known_hosts" -R "47.95.13.239",也就是把服務器的IP地址添加到本地SSH的known_hosts文件中。

按照上述提示操作:
圖3 添加主機名
接下來再次嘗試使用ssh方式連接服務器:
圖4 SSH方式連接成功
可以看到,系統提示我要重新確認密鑰的真實性,要輸入yes並輸入服務器密碼。
SSH方式居然連接成功了。。。

於是我趕緊試了一下用FinalShell方式連接服務器。
圖5 FinalShell連接成功
終於連上了。。。
後來我在Windows環境下又試了試,也是可以連接的。

三、總結

具體是什麼原因導致的FinalShell連接失敗?我也不知道。能解決問題就完事了。

四、參考資料

  1. 能ping得通服務器但卻ssh不了的原因 - by 韋小龍
  2. Finalshell無法連接ssh Session.connect: java.net.ConnectException: Connection - by Pursue__
  3. 服務器能ping通,ssh卻連不上 - by zou79189747
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章