
我想打開 ssh 終端,但它在連接埠 22 上拒絕連接。我如何連接到我的伺服器?
PORT STATE SERVICE
21/tcp open ftp
25/tcp open smtp
80/tcp open http
4000/tcp filtered remoteanything
4001/tcp filtered newoak
4002/tcp filtered mlchat-proxy
這是我從 hackertarget.com 進行的連接埠掃描:
PORT STATE SERVICE VERSION
21/tcp open ftp ProFTPD 1.3.1
22/tcp closed ssh
25/tcp open smtp Postfix smtpd
80/tcp open http lighttpd 1.4.29
110/tcp closed pop3
139/tcp closed netbios-ssn
143/tcp closed imap
443/tcp closed https
445/tcp closed microsoft-ds
1433/tcp closed ms-sql-s
3306/tcp closed mysql
8080/tcp closed http-proxy
怎麼才能關閉sshd呢?
答案1
如果你的連線被拒絕,而Nmap顯示埠被關閉,那麼你就無法連線。如果您有其他方式(實體終端、虛擬控制台等)進行訪問,您可以使用以下命令確認 SSH 守護程式是否正在運行(有些命令可能在您的系統上不可用):
ps -f -C sshd
ps aux | grep sshd
sudo netstat -ptan | grep sshd
service ssh status
如果它沒有運行,您需要啟動它。執行此操作的常見方法是:
service ssh start
invoke-rc.d ssh start
/etc/init.d/ssh start
/usr/sbin/sshd
所有這些命令都需要 root 權限(例如 sudo)。
如果守護程序正在運行,但您仍然無法連接,則可能是網路設備或主機的 iptables 防火牆阻止了連接。您可以使用 來查看自己的規則iptables -L
,但如果您使用防火牆管理器(UFW 在 Ubuntu 上很流行),則這些表可能難以閱讀,您應該檢查您正在使用的工具的使用者介面(ufw status
例如, ) 。網路設備不太可能阻止它,因為您的 Nmap 輸出顯示了一些已過濾(防火牆)的端口,而 22/tcp 不在其中。
最後,還有一些防禦工具和腳本(例如失敗2禁止和其他),可以阻止違反策略的位址(例如太多失敗的登入嘗試),因此您可能需要檢查日誌中是否有類似的情況。
答案2
您可以使用以下命令遠端檢查 ssh 伺服器的狀態nmap
$ nmap -v -nn serverip 22
如果它顯示 ssh 伺服器已關閉,那麼您必須獲得對 ssh 伺服器的本地存取權限並執行以下命令:
$ /etc/init.d/ssh status
如果此顯示 ssh 服務已關閉,那麼您必須透過以下方式啟動它
$ sudo /etc/init.d/ssh start
或者
$ service ssh start