Linux SSH 遠端登入與操作
SSH (Secure Shell) 是加密的遠端登入協定。我們管理 Linux Server 有 99% 的時間都是透過 SSH 連線進去操作的。
遠端登入
語法:ssh [帳號]@[IP位址]
ssh user@192.168.1.100
首次連線時,系統會問你是否信任這台主機的 Fingerprint,輸入 yes 即可。接著輸入密碼就能登入。
指定 Port (-p)
如果伺服器為了安全改了 Port (預設是 22),請用 -p 指定。
ssh -p 2222 user@192.168.1.100
設定 SSH Key 免密碼登入
每次都要打密碼很煩,而且不安全(容易被暴力破解)。 最佳實踐是使用 金鑰對 (Public/Private Key) 登入。
第一步:在「本機」產生金鑰
ssh-keygen -t rsa -b 4096
一路按 Enter 到底即可。
這會你的 ~/.ssh/ 目錄下產生兩個檔案:
id_rsa(私鑰):絕對不能給別人!id_rsa.pub(公鑰):這就是要給伺服器的通行證。
第二步:將公鑰上傳到 Server
使用 ssh-copy-id 指令可以自動幫你把公鑰放到 Server 的 ~/.ssh/authorized_keys 裡面。
ssh-copy-id user@192.168.1.100
輸入一次密碼後,以後登入這台 Server 就不需要打密碼了!
設定檔 (~/.ssh/config)
如果你有很多台 Server,IP 跟 Port 都記不住怎麼辦?
你可以編輯 ~/.ssh/config 檔案(如果沒有就建立它)。
Host myweb
HostName 192.168.1.100
User ubuntu
Port 22
Host db-server
HostName 10.0.0.5
User admin
以後只要打 ssh myweb 就會自動依照設定連進去了,超方便!
進階技巧:SSH Tunnel (通道)
SSH 還有一個強大的功能叫做 Port Forwarding (連接埠轉發),可以用來穿越防火牆或掛載內網服務。 詳細教學請參考:SSH Tunnel 通道技術詳解 (Local, Remote, Dynamic Forwarding)