搜尋此網誌

2026年8月26日 星期三

SSH 使用金鑰登入

緣起:


    前幾天腦子在想一件事,就是能不能在同個區網內,用 A 電腦編輯跟查看程式文件,然後在 B 電腦上編譯、除錯、執行?問了 gpt (還 claude?),它說首選用 VS Code 的 Remote SSH Extension,再來是本地架個 gitea,在 A 寫完程式後 push,在 B 電腦上 pull,然後再做你想要的操作,最後一個方案是用 rsync 來同步兩台電腦的資料。

    我是嘗試使用 VS Code 的 remote ssh extension,只要 B 電腦有裝 Remote-SSH 就好,在 A 電腦上的 VS Code 裝 Remote SSH Extension,連上 B 電腦後它會自動下載 vscoder-server。在操作的過程中,我發現 AI 要我做一件事,就是在 A 電腦上生成一對 ssh 的金鑰,然後再把公鑰丢在 B 電腦上,之後用 ssh 連線時就不需要再輸入使用者密碼了。

    哇 ~~ 我之前用 ssh 都是每次要輸入密碼,從沒想過要找看看有什麼不用輸入密碼的方式,有夠蠢的,現在發現這方法很像已知用火。


金鑰:


    如果你的 A 電腦沒有生成過 ssh 的金鑰的話,可以用指令

ssh-keygen -t ed25519

    來生成,那個 -t ed25519 是指定金鑰的類型為 Ed25519 這種橢圓苗線算法,執行後會在 A 電腦的 ~/.ssh/ 生成一個 id_ed25519 跟 id_ed25519.pub,pub 是公鑰。設定的話,一路按 Enter 就好。

    然後用指令

ssh-copy-id <使用者>@<B電腦ip>

    成功連上後,它就會把 pub 檔的內容加到 B 電腦的 ~/.ssh/authorized_keys 裡,這樣下次登入時就不用再輸入密碼了。

    如果 B 電腦的環境是跑在 Container 裡的,裡頭的帳號根本沒密碼,就要用其它的方式,直接在 B 電腦上手動把 pub key 貼進去

mkdir -p ~/.ssh
echo "ssh-ed25519 AAAA...你的公鑰" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

    這樣就行了。

沒有留言:

張貼留言