跳轉到

建立 2026-09-14 更新 2026-09-14

SSH

SSH(Secure Shell)是連 Linux 主機的標準方式:加密的遠端終端,也可傳檔。雲端主機、機房伺服器,幾乎都靠它。

登入

ssh alice@192.0.2.10
ssh -p 2222 alice@example.com

第一次連會問你是否信任主機金鑰,確認 fingerprint 後才 yes。之後同一個主機會記在 ~/.ssh/known_hosts

在遠端做完:

exit

Ctrl+D

用金鑰,少用密碼

ssh-keygen -t ed25519 -C "your@email"
ssh-copy-id alice@192.0.2.10

私鑰留在 ~/.ssh/id_ed25519,權限應為 600;公鑰放到遠端的 ~/.ssh/authorized_keysssh-copy-id 會幫你處理後者。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

權限太開,sshd 會直接拒絕金鑰登入。

傳檔:scprsync

scp notes.txt alice@host:~/
scp -r docs alice@host:~/backup/
scp alice@host:~/app.log .

路徑裡的 : 分隔「主機」與「遠端路徑」。大量或要增量同步用 rsync

rsync -avz ./site/ alice@host:/var/www/site/

-a 保留屬性、-v 詳細、-z 壓縮傳輸。

設定檔 ~/.ssh/config

Host web
    HostName 192.0.2.10
    User alice
    Port 22
    IdentityFile ~/.ssh/id_ed25519

之後只要:

ssh web

不要把私鑰提交到 Git

私鑰外洩等於主機被拿走。公鑰可以給人;私鑰不行。

總結

ssh user@host 登入,金鑰取代密碼,scp / rsync 傳檔。連得上機器之後,軟體從哪來?看 套件管理