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实际上正在关闭 您可以通过执行ps -ef检查是哪种情况并检查ssh-agent. 如果ssh-agent已经死了,你需要一种方法让它保持活力.这有三种方法: >您可以在引导服务器时从启动脚本启动ssh-agent,并将输出回显到文件(具有适当的访问权限以防止其被滥用).如果您使密钥无密码,您也可以从脚本中添加密钥. (显然,当您连接的帐户对远程服务器的权限非常有限时,最后一部分是可取的).然后让您的脚本从启动时创建的文件中读取SSH代理信息. 如果ssh-agent没有死,但是你丢失了环境信息,请确保在启动它时让它将其环境变量写入特定文件.然后,在登录时,让您的shell源文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |