我有一个场景,每当用户通过 SSH 登录到 CENTOS 计算机时,我需要运行以下命令:
ssh-agent bash ssh-add
[另一个线程解释了我使用这些命令的原因:
我尝试将它们放入 .bashrc 中,但是当我通过 Putty 登录时,似乎登录挂起。
我还尝试将这两个命令放入 shell 脚本中,然后在登录后手动运行 shell 脚本,但这不起作用(看起来只运行了“ssh-agent bash”)。
那么用户登录时是否可以运行这两个命令?如果是这样,我该怎么做?
谢谢,吉姆
答案1
如果你把
ssh-agent bash ssh-add
在你的 中.bashrc
,你会得到一个无限递归:shell.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