linux – ssh-agent行为的差异

前端之家收集整理的这篇文章主要介绍了linux – ssh-agent行为的差异前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
看起来我在配置的两个帐户的ssh-agent行为之间有点差异.

我写了一个简单的监控脚本来检查我们运行的一些虚拟机的可用性.我使用主访问帐户进行了所有测试和调试.在此过程中,我生成了一个SSH密钥对,启动了ssh-agent,并将该标识添加到代理,以允许脚本ssh而无需密码.

现在,我想将此脚本作为服务帐户用户运行.我创建了服务帐户,并生成密钥暂时将登录shell设置为/ bin / bash.我生成了密钥,删除了密码,并将身份添加到代理.

差异似乎与shell如何连接到代理程序有关.在我的用户帐户中,自从我开始测试(大约两周)以来,我没有必要重新启动代理.但是,当我尝试在服务帐户下运行脚本时,我似乎每次都必须重新启动代理,添加标识,然后执行工作.

理想情况下,我希望代理无限期地运行,并且只要脚本运行,服务帐户就会自动重新连接到它,因此我不需要管理脚本中的进程.我查看了每个帐户的配置,但找不到任何差异.任何见解将不胜感激.

**编辑:我忘了指出代理程序确实连续运行,但服务帐户的shell进程似乎没有使用它,而新的代理程序必须启动:

ovmmon   14043  0.0  0.0  53916   204 ?        Ss   May17   0:00 ssh-agent
ovmmon   14952  0.0  0.0  53916   204 ?        Ss   May17   0:00 ssh-agent

解决方法

这里发生了两件事之一:

>当您注销时,ssh-agent实际上正在关闭
> ssh-agent仍在运行,但您丢失了有关其PID和管道的信息

您可以通过执行ps -ef检查是哪种情况并检查ssh-agent.

如果ssh-agent已经死了,你需要一种方法让它保持活力.这有三种方法

>您可以在引导服务器时从启动脚本启动ssh-agent,并将输出回显到文件(具有适当的访问权限以防止其被滥用).如果您使密钥无密码,您也可以从脚本中添加密钥. (显然,当您连接的帐户对远程服务器的权限非常有限时,最后一部分是可取的).然后让您的脚本从启动时创建的文件中读取SSH代理信息.
>登录服务帐户时使用屏幕;然后在启动代理后断开与屏幕会话的连接.
>启动代理时使用nohup.

如果ssh-agent没有死,但是你丢失了环境信息,请确保在启动它时让它将其环境变量写入特定文件.然后,在登录时,让您的shell源文件.

原文链接:https://www.f2er.com/linux/395424.html

猜你在找的Linux相关文章