如何在登录时自动运行“ssh-agent bash”和“ssh-add”?

如何在登录时自动运行“ssh-agent bash”和“ssh-add”?

我有一个场景,每当用户通过 SSH 登录到 CENTOS 计算机时,我需要运行以下命令:

ssh-agent bash ssh-add

[另一个线程解释了我使用这些命令的原因:

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

相关内容