`eval 'ssh-agent -s'`を常に使用しない方法

`eval 'ssh-agent -s'`を常に使用しない方法

私のサーバーにSSHを介して再度接続するたびに私のサーバーで正常にSSHを実行するには、常にeval 'ssh-agent -s'次のコマンドを使用して私のSSHエージェントを起動する理由を理解できません。ssh-add <my_key.pem>.bashrcに入れましたが、確かに何かが欠けており、ログインするたびに初期化したくありません。

答え1

@Jakujeが述べたように、フォワードプロキシを使用し、ローカルセキュリティシステムのキーを使用することをお勧めします。

keychainしかし、あなたが言うようにする必要がある場合は、(github.com/funtoo/keychain)や(github.com/wwalker/ssh-find-agent)などのツールを使用してくださいssh-find-agent。後で電子に置き換えました。)両方のツールが実行されているgpgまたはsshエージェントを見つけて、環境をそのエージェントに接続します。

答え2

ForwardAgent私は、一部のサーバーにいくつかのキーを置いてログインするたびにプロキシを再初期化するよりも、ワークステーションから情報を取得する方が安全で便利です。

~/.ssh/config単に適切なホストに追加することができます(または-Aスイッチsshコマンドを使用して):

ForwardAgent yes

ローカルエージェントにローカルキーを追加すると、ローカルで使用するのか、リモートで使用しているのかを気にする必要はありません。


パスワードで保護されたキーであることも言及していませんが、に入れるとそうではありません.bashrc。より簡単な方法は、サーバーにキーパスを割り当てることです~/.ssh/config(キーをキーパスに入れたい場合)。サーバー)、次のようになります。

IdentityFile <my_key.pem>

再特定のホストまたは世界的に。

答え3

git pushでこの問題が発生した場合は、.ssh / configの設定と一致するようにgitリモートを設定して問題を解決します。

git remote add alice git@gitolite-as-alice:whatever.git

.ssh/config

Host gitolite-as-alice <-- matches git remote above
HostName git.company.com
User git
IdentityFile /home/whoever/.ssh/id_rsa.alice
IdentitiesOnly yes

関連情報