![ログイン時に「ssh-agent bash」と「ssh-add」を自動的に実行するには? [コピー]](https://linux33.com/image/11134/%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E6%99%82%E3%81%AB%E3%80%8Cssh-agent%20bash%E3%80%8D%E3%81%A8%E3%80%8Cssh-add%E3%80%8D%E3%82%92%E8%87%AA%E5%8B%95%E7%9A%84%E3%81%AB%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
ユーザーがSSHを介してCENTOSシステムにログインするたびに、次のコマンドを実行する必要があるシナリオがあります。
SSH-エージェントbash SSH-追加
[他のスレッドでは、私がこのコマンドを使用する理由を説明します。
ssh-addが文句を言います:認証プロキシへの接続を開くことができません ]
私は.bashrcに入れようとしましたが、Putty経由でログインするとログインが中断されるようです。
また、両方のコマンドをシェルスクリプトに入れてから、ログイン後に手動でシェルスクリプトを実行しようとしましたが、うまくいきませんでした(「ssh-agent bash」のみを実行したようです)。
では、ユーザーがログインしたときにこれら2つのコマンドを実行できますか?では、どうすればよいですか?
ありがとう、ジム
答え1
入れたら
ssh-agent bash ssh-add
あなたのものでは.bashrc
無限再帰が発生します。シェルが.bashrc
実行を開始し、ssh-agent
...の別のコピーが開始され、再実行され、bash
プロセス.bashrc
が繰り返されます。
あなたは次のようなものが欲しいでしょう:
if [[ "$SSH_AUTH_SOCK" = "" ]]; then
# on the first round, we do this...
exec ssh-agent bash
else
# ... and when ssh-agent is running, we do this instead.
ssh-add
fi