ssh
登入伺服器、執行指令,以及建立加密通道。
執行前須知
首次連線時,應透過可信管道核對主機金鑰指紋。-N 只建立轉送,不啟動遠端指令;下列前景通道可按 Ctrl+C 停止。-L 的目標由 SSH 伺服器解析及存取;-R 的目標由本機存取。遠端監聽仍受伺服器轉送政策約束,回環綁定亦受 GatewayPorts 影響。ExitOnForwardFailure 檢查初始轉送設定,不保證後續每個目標均可達。-D 提供 SOCKS,並非 VPN,須自行設定用戶端,支援時亦應設定遠端 DNS。詳細日誌可能含位址、使用者名稱與金鑰路徑,分享前請遮蔽敏感資訊。
使用範例
登入遠端帳號;首次連線會核對主機金鑰並進行身分驗證。
ssh alice@server.example.com指定 2222 連接埠和身分檔案;IdentitiesOnly 限制提供的身分。
ssh -p 2222 -i ~/.ssh/id_ed25519 -o IdentitiesOnly=yes alice@server.example.com透過跳板機存取目標伺服器(ProxyJump/-J)。
ssh -J alice@bastion.example.com alice@internal.example.com本機轉送:本機 15432 連接埠經伺服器存取遠端資料庫。
ssh -N -L 127.0.0.1:15432:db.internal.example.com:5432 -o ExitOnForwardFailure=yes alice@server.example.com遠端轉送:伺服器回環位址的 18080 連接埠存取本機 8080。
ssh -N -R 127.0.0.1:18080:127.0.0.1:8080 -o ExitOnForwardFailure=yes alice@server.example.com在 127.0.0.1:1080 建立本機 SOCKS 監聽。
ssh -N -D 127.0.0.1:1080 -o ExitOnForwardFailure=yes alice@server.example.com輸出詳細診斷日誌,將建立連線的逾時設為 10 秒。
ssh -vvv -o ConnectTimeout=10 alice@server.example.com依序經過兩台跳板機連線;用戶端分別驗證每一跳,並須核對各主機金鑰。
ssh -J alice@jump1.example.com,alice@jump2.example.com alice@target.example.com檢視 Host 和 Include 比對後生效的用戶端設定;輸出可能包含敏感連線資訊。
ssh -G alice@server.example.com執行一條遠端命令後返回本機終端;請依遠端 shell 規則正確引用命令。
ssh alice@server.example.com 'uptime'建立並重用連線、檢查狀態,再關閉主連線。確保 ~/.ssh 僅本人可存取;關閉主連線也會關閉依賴它的工作階段。
ssh -M -S ~/.ssh/securepipes-%C -o ControlPersist=10m -fN alice@server.example.com
ssh -S ~/.ssh/securepipes-%C alice@server.example.com
ssh -S ~/.ssh/securepipes-%C -O check alice@server.example.com
ssh -S ~/.ssh/securepipes-%C -O exit alice@server.example.com列出可查詢類別、金鑰演算法及加密演算法;用戶端支援不代表伺服器接受。
ssh -Q help
ssh -Q key
ssh -Q cipher查詢 known_hosts 的紀錄與指紋。僅在透過獨立可信管道確認金鑰變更後才刪除;主機與連接埠格式須正確。
ssh-keygen -F server.example.com -l
ssh-keygen -R server.example.com為指令碼啟用非互動模式與連線逾時;須預先設定驗證和主機信任,遇到互動提示時會失敗。
ssh -o BatchMode=yes -o ConnectTimeout=10 alice@server.example.com使用 ProxyCommand 和 -W 經跳板機連線;通常 ProxyJump 較簡單,須核對兩台主機金鑰。
ssh -o 'ProxyCommand=ssh -W %h:%p alice@bastion.example.com' alice@target.example.com在伺服器回環位址建立 SOCKS 監聽連接埠。伺服器其他本機使用者或程序也可能存取;伺服器策略必須允許轉送。
ssh -N -R 127.0.0.1:1080 -o ExitOnForwardFailure=yes alice@server.example.com設定加密的 SSH 保持連線探測與連線逾時,用來偵測無回應的對端,但不保證自動重連。
ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -o ConnectTimeout=10 alice@server.example.com參數與範例
-p port常用連接到指定的伺服器連接埠。
範例
ssh -p 2222 alice@server.example.com-i identity_file常用使用指定的私鑰檔案;保護它並且永遠不要分享它。
範例
ssh -i ~/.ssh/id_ed25519 alice@server.example.com-l login_name指定遠端登入名。
範例
ssh -l alice server.example.com-J destination常用透過 SSH 跳轉主機連線。
範例
ssh -J alice@bastion.example.com alice@internal.example.com-L address:port:host:hostport常用將本機偵聽連接埠轉送至從 SSH 伺服器到達的目的地。
範例
ssh -N -L 127.0.0.1:15432:db.internal.example.com:5432 alice@server.example.com-R address:port:host:hostport常用將遠端偵聽連接埠轉送至從本機電腦到達的目標。伺服器策略可以限制綁定。
範例
ssh -N -R 127.0.0.1:18080:127.0.0.1:8080 alice@server.example.com-D address:port常用建立本機 SOCKS 偵聽器。配置每個客戶端以使用它;這不是 VPN。
範例
ssh -N -D 127.0.0.1:1080 alice@server.example.com-N常用不要運行遠端命令;僅用於轉發。
範例
ssh -N -D 127.0.0.1:1080 alice@server.example.com-o option=value常用為此呼叫設定 ssh_config 選項。轉發設定成功並不能保證稍後可以到達目的地。
範例
ssh -o ExitOnForwardFailure=yes alice@server.example.com-F configfile使用備用客戶端設定檔。
範例
ssh -F ~/.ssh/lab_config alice@server.example.com-v / -vvv常用列印診斷輸出;更多 v 字元可增加細節。日誌可能包含敏感的連線資訊。
範例
ssh -vvv alice@server.example.com-4 / -6分別僅使用 IPv4 或僅使用 IPv6。
範例
ssh -4 alice@server.example.com-C請求壓縮。它可能無法改善已經壓縮的流量。
範例
ssh -C alice@server.example.com-T / -t分別禁用或請求偽終端。
範例
ssh -t alice@server.example.com-A啟用代理轉發。受感染的遠端主機可以向轉送的代理請求簽署;僅與受信任的主機一起使用。
範例
ssh -A alice@server.example.com-G評估主機和匹配規則後列印有效的客戶端配置。
範例
ssh -G lab-V列印已安裝的 SSH 用戶端版本。
範例
ssh -V權威參考
核對日期:2026 年 10 月 27 日