linux 如何用python永久启动ssh-agent?

6ovsh4lw  于 2023-10-16  发布在  Linux
关注(0)|答案(1)|浏览(147)

我正在寻找的eval $(ssh-agent)为Python的等价物,这将启动ssh代理,并将保持运行后,脚本完成运行。
我在Google上找不到任何有用的东西。

oxf4rvwz

oxf4rvwz1#

我试着使用https://pypi.python.org/pypi/ssh-agent-setup/0.2.0,但它不适合我。看看https://github.com/haarcuba/ssh-agent-setup上的代码,我发现这很容易修复。我做了一个fork和一个pull request https://github.com/haarcuba/ssh-agent-setup/pull/2
对于那些有兴趣使用ssh-agent-setup python模块的人,可以按照https://github.com/haarcuba/ssh-agent-setup#ssh-agent-setup的说明进行操作。
如果您获得:

ssh_agent_setup.setup()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/site-packages/ssh_agent_setup/__init__.py", line 34, in setup
    _setupAgent()
  File "/usr/local/lib/python3.6/site-packages/ssh_agent_setup/__init__.py", line 18, in _setupAgent
    raise Exception( 'Could not parse ssh-agent output. It was: {}'.format( process.stdout ) )
Exception: Could not parse ssh-agent output. It was: setenv SSH_AUTH_SOCK /tmp/ssh-thoTQTiOTR0y/agent.47524;
setenv SSH_AGENT_PID 47797;
echo Agent pid 47797;

修复方法是https://github.com/haarcuba/ssh-agent-setup/pull/2/commits/d262228d379a4c58d357c7d5f83a579ca760e054#diff-39dd5525d88610b0c21a9bec4d2534b0
如果有人想实现类似的东西,代码很容易理解https://github.com/haarcuba/ssh-agent-setup/blob/master/ssh_agent_setup/init.py
通过阅读代码,我现在理解了如何在python中启动ssh-agent。

相关问题