ssh(secure shell)是一種用于遠程登錄和安全傳輸數據的協議,在linux系統管理中起著關鍵作用。作為linux系統管理員,掌握ssh命令是必不可少的技能。本文提供了一份詳細的ssh命令備忘單,并附有示例,以幫助您更深入地理解和使用這些命令。
連接到遠程服務器
-
ssh 使用ssh命令連接到遠程服務器。
示例:
ssh username@hostname
-
ssh -p 指定遠程服務器的SSH端口。
示例:
ssh -p 2222 username@hostname
-
ssh-keygen 生成SSH密鑰對。
示例:
ssh-keygen -t rsa -b 4096
-
ssh-copy-id 將SSH公鑰復制到遠程服務器。
示例:
ssh-copy-id username@hostname
文件傳輸
-
scp 通過SSH在本地系統和遠程服務器之間傳輸文件。
示例:
scp file.txt username@hostname:/path/to/destination
-
sftp 使用SFTP協議在本地系統和遠程服務器之間進行交互式文件傳輸。
示例:
sftp username@hostname
遠程命令執行
-
ssh command 在遠程服務器上執行命令。
示例:
ssh username@hostname command
-
ssh -t 通過SSH在遠程服務器上執行交互式命令。
示例:
ssh -t username@hostname command
-
ssh -f 在遠程服務器上后臺執行命令。
示例:
ssh -f username@hostname command
配置和管理
-
~/.ssh/config 編輯SSH客戶端配置文件。
示例:
vi ~/.ssh/config
-
ssh-agent 啟動ssh-agent并添加SSH私鑰。
示例:
eval $(ssh-agent) ssh-add ~/.ssh/id_rsa
-
ssh-keyscan 獲取遠程服務器的SSH公鑰。
示例:
ssh-keyscan hostname
-
sshd_config 編輯SSH服務器配置文件。
示例:
vi /etc/ssh/sshd_config
-
systemctl 管理SSH服務。
示例:
sudo systemctl start ssh sudo systemctl stop ssh sudo systemctl restart ssh
隧道和端口轉發
-
ssh -L 在本地端口和遠程服務器之間創建本地隧道。
示例:
ssh -L local_port:remote_host:remote_port username@hostname
-
ssh -R 在遠程端口和本地服務器之間創建遠程隧道。
示例:
ssh -R remote_port:local_host:local_port username@hostname
-
ssh -D 在本地系統上創建動態端口轉發。
示例:
ssh -D local_port username@hostname
SSH密鑰管理
-
ssh-add 將SSH私鑰添加到ssh-agent中。
示例:
ssh-add ~/.ssh/id_rsa
-
ssh-keygen 生成SSH密鑰對。
示例:
ssh-keygen -t rsa -b 4096
-
ssh-copy-id 將SSH公鑰復制到遠程服務器。
示例:
ssh-copy-id username@hostname
-
ssh-keyscan 獲取遠程服務器的SSH公鑰。
示例:
ssh-keyscan hostname
安全配置
-
~/.ssh/known_hosts 編輯已知主機的公鑰列表。
示例:
vi ~/.ssh/known_hosts
-
/etc/ssh/sshd_config 編輯SSH服務器的配置文件。
示例:
sudo vi /etc/ssh/sshd_config
-
ssh -C 啟用壓縮以減少數據傳輸量。
示例:
ssh -C username@hostname
-
ssh -o 使用自定義選項連接到遠程服務器。
示例:
ssh -o "OptionName=value" username@hostname
總結
這些是Linux系統管理員有用的SSH命令備忘單,每個命令都附帶了詳細的示例。通過熟練掌握這些命令,您將能夠輕松連接到遠程服務器,執行遠程命令,傳輸文件以及配置和管理SSH服務。希望這份備忘單對您的工作有所幫助,提高您在Linux系統管理中的效率和安全性!