# SSH命令使用小技巧有哪些
SSH(Secure Shell)是系統管理員和開發人員最常用的遠程管理工具之一。掌握一些實用技巧可以大幅提升工作效率和安全性。本文將介紹20+個SSH高階使用技巧,涵蓋連接優化、文件傳輸、隧道代理等實用場景。
## 一、基礎連接優化技巧
### 1. 簡化常用連接命令
```bash
# 普通連接方式
ssh username@remote_host -p 2222
# 使用~/.ssh/config配置文件簡化
Host myserver
HostName remote_host
User username
Port 2222
IdentityFile ~/.ssh/id_rsa
# 簡化后只需執行
ssh myserver
# 客戶端配置(添加到~/.ssh/config)
ServerAliveInterval 60
ServerAliveCountMax 3
# 服務端配置(修改/etc/ssh/sshd_config)
ClientAliveInterval 60
ClientAliveCountMax 3
ssh-keygen -t ed25519 -a 100 # 更安全的算法
ssh-keygen -t rsa -b 4096 # 兼容性更好的方式
# 安裝Google Authenticator
sudo apt install libpam-google-authenticator
# 修改/etc/ssh/sshd_config
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
# 方法1:使用ProxyJump(OpenSSH 7.3+)
ssh -J jump_user@jump_host:port target_user@target_host
# 方法2:配置文件方式
Host target_host
ProxyJump jump_user@jump_host:port
# 啟用連接復用(添加到~/.ssh/config)
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 1h
# 從遠程復制到本地
scp -P 2222 user@host:/remote/file /local/dir
# 遞歸復制目錄
scp -r user@host:/remote/dir /local/dir
# 使用rsync增量傳輸
rsync -avz -e "ssh -p 2222" /local/dir user@host:/remote/dir
scp -l 1024 user@host:/large/file . # 限制為1Mbps
rsync --bwlimit=1024 -avz user@host:/dir .
rsync --partial --progress -avz user@host:/large/file .
# 將遠程3306端口映射到本地13306
ssh -L 13306:localhost:3306 user@host
# 將本地8080暴露到遠程服務器的8888端口
ssh -R 8888:localhost:8080 user@host
ssh -D 1080 user@host # 創建SOCKS5代理
# 連接后自動附加tmux會話
ssh -t user@host "tmux attach || tmux new"
# 對多個服務器執行相同命令
for host in host1 host2 host3; do
ssh user@$host "uptime"
done
# 使用pssh工具并行執行
pssh -i -H "host1 host2" -l user "df -h"
ssh -X user@host # 基本X11轉發
ssh -Y user@host # 受信任的X11轉發
# 修改/etc/ssh/sshd_config
PasswordAuthentication no
ChallengeResponseAuthentication no
# 只允許特定用戶登錄
AllowUsers user1 user2
# 只允許特定用戶組登錄
AllowGroups sshusers
# 生成CA證書
ssh-keygen -f /etc/ssh/ca_key -b 4096
# 配置sshd信任CA證書
TrustedUserCAKeys /etc/ssh/ca_key.pub
ssh -vvv user@host # 三級詳細輸出
sshd -d -p 2222 # 服務端調試模式
# 顯示連接各階段耗時
time ssh -o "ConnectTimeout=5" user@host "exit"
sshd -t # 測試sshd配置是否正確
sshfs user@host:/remote/dir /local/mountpoint
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@host
eval $(ssh-agent) # 啟動agent
ssh-add ~/.ssh/id_rsa # 添加密鑰
ssh-add -l # 列出已加載密鑰
ssh -C user@host # 交互式會話
scp -C file user@host: # 文件傳輸
# 修改/etc/ssh/sshd_config
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
# Linux
cat ~/.ssh/id_rsa.pub | xclip -sel clip
# Mac
cat ~/.ssh/id_rsa.pub | pbcopy
sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
who /var/log/wtmp # 查看歷史登錄
last -i # 顯示IP地址
本文介紹的29個SSH技巧涵蓋了從基礎到高級的各個方面。合理運用這些技巧可以:
建議將常用配置寫入~/.ssh/config文件,并定期審查SSH安全設置。對于生產環境,務必啟用密鑰認證并禁用密碼登錄。
注意:部分高危操作(如關閉主機密鑰檢查)僅建議在測試環境使用,生產環境應保持最高安全級別。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。