SSH 各台不同的機器 / 不同的 Git Server(開發 / 線上) ... 等, 想要使用不同的 Private Key, 要如何做?
設定 SSH 各台不同機器、Git 使用各自的 Private Key
SSH 各台不同的機器 / 不同的 Git Server(開發 / 線上) 要指定專用的 Private Key, 可以於 .ssh/config 做設定.
- vim .ssh/config
Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_git_github Host git.example.com HostName git.example.com User username IdentityFile ~/.ssh/id_rsa_git_example Host abc.com HostName abc.com User username IdentityFile ~/.ssh/id_rsa_abc Host example.com HostName example.com User username #IdentityFile ~/.ssh/id_rsa # id_rsa 可不用設定, 預設就會使用這個.
- 註1: github.com 會使用 ~/.ssh/id_rsa_git_github, abc.com 會使用 ~/.ssh/id_rsa_abc 的 Key.
- 註2: IdentityFile 是指定 Private Key 的檔名, 此檔名可隨意自己取名, 用 id_rsa_xxx 當範例, 只是取系統用 id_rsa 當預設檔名, 這樣子寫比較容易懂.
- 更多 SSH Config 參數可見: man ssh_config
可以增加autocomplete 在.bashrc裡~
complete -o default -o nospace -W "$(awk '/^Host/ {print $2}' < $HOME/.ssh/config)" scp sftp ssh
感謝, Debian 好像內建就已經 Support autocomplete 了耶, Tab 都會自己將這些主機名稱列出 😀