OpenSSH/第三方工具
- autossh - 自動重新啟動 SSH 會話和隧道
- scanssh - SSH 主機和一些代理型別掃描器
- sshfs - 基於 SFTP 的使用者空間檔案系統客戶端
- sshfp - 從known_hosts檔案或ssh-keyscan(1)生成SSHFP DNS記錄
- keychain - 在登入之間重複使用 ssh-agent 和/或 gpg-agent
- rsync - 使用增量編碼同步檔案和目錄
- gstm - 管理 SSH 隧道埠重定向的圖形介面
- sslh - 協議多路複用器
- sshguard - 帶有資料包過濾的入侵檢測系統
- ssh-audit - 識別伺服器的橫幅、金鑰交換、加密、MAC、壓縮、相容性和其他資訊。
- webcat - 可以使用 WebSockets[1]進行隧道傳輸,否則與netcat和curl非常相似。
scanssh掃描主機和網路以查詢正在執行的服務[2]。它檢查伺服器的版本號並將結果顯示在列表中。它檢測 ssh、sftp 和幾種型別的 SOCKS、HTTP 和 telnet 代理。
掃描一個小型的子網以查詢 ssh 伺服器
$ sudo scanssh -n 22 -s ssh 192.168.100.32/26
掃描同一個小型網路以查詢 SOCKS 代理
$ sudo scanssh -s socks5,socks4 192.168.100.32/26
可以設定不同的掃描速度,以及隨機取樣。開放代理檢測掃描可檢測常見埠上的開放代理。
隨機掃描 172.16.1.1 到 172.31.254.254 之間的 1000 個主機,速度為每秒 200 個
$ sudo scanssh -r 200 -p random(1000)/172.16.0.0/12
要掃描的主機和網路可以指定為 IPv4 地址或 CIDR 格式的 IP 字首,其中包含 IP 地址和網路掩碼。可以透過在地址規範的末尾新增冒號來追加埠。掃描主機順序是隨機的,但可以透過以下兩個引數進行修改,random 和 split
random(n[,seed])/從指定為掃描目標的範圍內選擇 n 個隨機地址。n 是要在給定網路中隨機建立的地址數量,而 seed 是偽隨機數生成器的可選種子。例如,可以透過將 'random(10000)/0.0.0.0/0' 指定為地址來對來自網際網路的 10000 個隨機 IPv4 主機進行取樣。
split(s,e)/選擇要使用的地址範圍的特定段。e 指定並行段數,而 s 是此特定掃描使用的段號。這可用於透過從每個主機掃描不同的段來從多個主機並行掃描。
-n 指定要掃描的埠號。埠以逗號分隔。每個指定的掃描器都會針對此列表中的每個埠執行。預設埠為 22。
掃描埠 22 和 2022 上的 SSH 伺服器
$ sudo scanssh -s ssh -n 22,2022 192.168.0.0/24
sshfs基於使用者空間檔案系統 (FUSE) 介面構建,允許非特權使用者建立安全可靠的檔案系統框架。它允許透過利用 SFTP 子系統將遠端檔案系統掛載為本地資料夾。它使用 SFTP 將遠端伺服器上的目錄掛載為本地目錄。這樣,所有使用應用程式都可以像本地一樣與該目錄及其內容進行互動。顧名思義,這是在使用者空間完成的,而不是像檔案系統通常需要的那樣在核心中完成。FUSE 具有穩定的 API 庫以及與 C、C++ 和 Java 的繫結。在這種情況下,它專門是透過ssh(1)執行的 SFTP 客戶端,然後將其掛載為檔案系統。
有關sshfs的更多資訊,請參見SFTP上的 Cookbook 部分。
sshfp使用儲存在known_hosts檔案中的公鑰或ssh-keyscan(1)提供的公鑰生成 SSHFP NS 記錄,作為使用 DNS 釋出 SSH 金鑰指紋的一種方式。這反過來允許在使用之前使用 DNSSEC 查詢來驗證 SSH 金鑰。DNS 中的 SSHFP 資源記錄用於儲存與主機名關聯的 SSH 公共主機金鑰的指紋。記錄本身包含演算法編號、指紋型別和公共主機金鑰的指紋。
有關 SSHFP 的詳細資訊,請參見RFC 4255。
keychain是ssh-agent(1)的另一個管理器,允許多個 shell 和程序(包括cron(8)作業)使用代理持有的金鑰。它通常整合到特定於桌面的工具中,如 OS X 上的 Apple Keychain 或 KDE 的 kdewallet。http://www.funtoo.org/en/security/keychain/intro/
rsync是一個檔案傳輸工具,可高效地在計算機之間傳輸檔案。它可以在 SSH 之上執行,也可以使用自己的協議。SSH 是預設協議。http://rsync.samba.org/
有關在指令碼中使用rsync進行即時或指令碼化備份的示例,請參見自動備份上的 Cookbook 部分。
gstm是管理 SSH 連線,尤其是埠轉發的圖形介面。http://sourceforge.net/projects/gstm/
sslh是協議多路複用器。它接受指定埠上的連線,並根據客戶端傳送的第一個資料包轉發連線。它可用於在 SSH、SSL、HTTP、OpenVPN、tinc 和 XMPP 之間共享單個埠。https://www.rutschle.net/tech/sslh/README.html
有關帶示例的討論,請參見多路複用部分。
sshguard是一個入侵防禦系統。它監控日誌以檢測不良活動模式,並觸發相應的包過濾規則,持續時間越來越長。它可以與除 SSH 之外的其他一些服務一起使用。http://www.sshguard.net/
ssh-audit是一個 Python 指令碼,用於收集有關 SSH 伺服器的資訊。它可以識別使用的橫幅、金鑰交換、加密、訊息認證程式碼 (MAC) 演算法、壓縮、相容性設定以及其他幾個與安全相關的方面。https://github.com/arthepsy/ssh-audit
以下工具在使用 OpenSSH 時很有用,但不在本書詳細介紹的範圍內。儘管如此,它們還是值得一提,足以列出
- netstat – 顯示網路連線、路由表、介面統計資訊、偽裝連線和組播成員資格
- nc 或 netcat – Netcat,TCP/IP 萬能工具。
- socat – SOcket CAT,與 netcat 類似的多用途中繼。
- nmap – 網路探索工具和安全掃描器。
- tcpdump – 即時顯示網路流量。
- telnet – 與其他主機進行未加密的互動。
- pagsh – 建立新的憑證快取沙箱和程序身份驗證組 (PAG)。
- nohup – 呼叫忽略 HANGUP 訊號的程序。
- sudo – 以其他使用者身份執行程式。
- lftp – 支援 SFTP 的便捷互動式多協議檔案傳輸文字客戶端。
- curl – 支援 SCP 和 SFTP 的多協議檔案傳輸文字客戶端。
- tmux – 終端多路複用器。
- ↑ Stefan Tatschner (2020-10-15). "SSH (反向) 透過 Websocket 隧道". 檢索於 2020-10-20.
- ↑ Niels Provos; Peter Honeyman (2001). "ScanSSH - 掃描網際網路上的 SSH 伺服器" (PDF). 密歇根大學資訊科技整合中心 (CITI). 檢索於 2016-03-05.