tdk*_*2fe 3 scripting linux ssh ssh-agent
似乎我在配置的两个帐户的 ssh-agent 行为之间存在一些差异。
我编写了一个简单的监控脚本来检查我们正在运行的某些 VM 的可用性。我使用我的主要访问帐户进行了所有测试和调试。在此过程中,我生成了一个 SSH 密钥对,启动了 ssh-agent,并将身份添加到代理中,以允许脚本在不需要密码的情况下进行 ssh。
现在,我想以服务帐户用户身份运行此脚本。我创建了服务帐户,并生成密钥,将登录 shell 临时设置为 /bin/bash。我生成了我的密钥,删除了密码,并将身份添加到代理中。
差异似乎与外壳如何连接到代理有关。在我的用户帐户中,自从我开始测试(大约两周)以来,我没有重新启动代理。但是,当我尝试在服务帐户下运行脚本时,似乎每次都必须重新启动代理,添加身份,然后执行工作。
理想情况下,我希望代理无限期运行并让服务帐户在脚本运行时自动重新连接到它,这样我就不需要在脚本中管理进程。我查看了每个帐户的配置,没有发现任何差异。任何见解将不胜感激。
**编辑:我忘了指出代理确实持续运行,但服务帐户的 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
Run Code Online (Sandbox Code Playgroud)
这里发生了两件事之一:
您可以通过执行 ps -ef 并检查 ssh-agent 来检查是哪种情况。
如果 ssh-agent 已死,则您需要一种方法来使其保持活动状态。以下是三种方法:
如果 ssh-agent 没有死,但是您丢失了环境信息,请确保在启动它时将其环境变量写入特定文件。然后,在登录时,让您的 shell 获取该文件。
归档时间: |
|
查看次数: |
280 次 |
最近记录: |