【发布时间】:2021-04-27 02:28:08
【问题描述】:
我正在使用 python 脚本拉取并推送到 github 存储库。对于 github 存储库,我需要使用 ssh 密钥。
如果我在运行脚本之前手动执行此操作:
eval $(ssh-agent -s)
ssh-add ~/.ssh/myprivkey
一切正常,脚本有效。但是,过了一会儿,显然密钥过期了,我必须再次运行这两个 cmds
问题是,如果我在 python 脚本中使用os.system(cmd) 执行此操作,则它不起作用,只有在我手动执行此操作时才有效
我知道这一定是使用 ssh 代理的一种乱七八糟的方式,但老实说我不知道它是如何工作的,我只是想让脚本工作,仅此而已
脚本每小时运行一次,以防万一
【问题讨论】:
-
你应该只使用
os.system("ssh-add /home/<myuser>/.ssh/myprivkey"),不要尝试在你的python脚本中加载ssh-agent -
何时是加载代理的合适时间,为什么我不应该在 python 脚本中这样做?
-
代理应该只加载一次,最好在登录后直接加载。如果您从 python 脚本中使用 os.system 启动它,您将丢失导出的变量
标签: python github ssh ssh-keys ssh-agent