web-dev-qa-db-ja.com

ターミナルを介してMac OS Xでssh設定ファイルをリロードする方法

現在のgithubアカウントを切り替えられるようにssh構成ファイルを更新すると、iTermを再起動しない限り、変更は正しく機能しません。 githubアカウントの切り替えを自動化するスクリプトを作成しています。更新された構成ファイルの構成設定をスクリプトに再読み込みさせたいのですが。どうすればこれを達成できますか?

10
Daniel Jacobson

私の場合、問題は設定ファイル(ssh -vvv -F /dev/null -i /some/path/some_other_keyおよび~/.ssh/の古いキーを別の場所に移動することでもないにもかかわらず、古いキーをどこからでも魔法にかけることができた)ではないことが最終的にわかりましたが、むしろssh agentssh-add -Dでクリアする必要がありました。

man ssh_configは、ssh-i~/.ssh/configファイルよりも優先されることを明確にします。そのため、これを行ってもまだ機能しない場合は、文書化されていない、より高い優先度のパワーが使用されています。

4
jdowdell

複数のIDの使用について Atlassianのドキュメント を参照することをお勧めします。私があなたが説明していると思われるようなケース-アカウントの切り替え-は、スクリプトの代わりに複数のアカウントに同時に対応するSSH構成ファイルで処理するのが最適です。

〜/ .ssh/configにあるconfigファイルの次の例を提供します。

# Default GitHub user
Host github.com
 HostName github.com
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/personalid

# Work user account
Host bitbucket.org
 HostName bitbucket.org
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/workid
1
user2623888

ファイルを「更新」する方法を探していたときに、実際に探しているのはコマンドを自動補完する方法であることに気付きました。

上記の@Jakujeで述べたように、更新は必要ありませんでした

オートコンプリートスクリプトに興味のある方は、次のとおりです。

complete -o default -o nospace -W "$(grep "^Host" $HOME/.ssh/config | cut -d" " -f2)" scp sftp ssh

私が見つけたのは here です。

上記のスクリプトを.bash_profileに追加してから、source .bash_profileを実行します

0
Tomos Williams