如何通过fabric实现ForwardAgent yes?

31 投票
2 回答
8862 浏览
提问于 2025-04-17 04:06

我已经成功地在远程服务器上用我的私钥对命令进行了run()操作。

不过,我想在远程服务器上用我的本地密钥(或者我正在使用的本地ssh代理)来执行git clone ssh://private/repo

请问怎么用fabric来实现这个呢?

2 个回答

1

简单来说,fabric使用的是一个修改过的paramiko版本,而paramiko本身不支持ssh代理转发。

详细说来,这个问题在fabricparamiko上都有讨论。甚至在fabric的讨论中,还有一条评论提到了一些链接,指向了一个同时修改了fabric和paramiko版本的项目,这个项目支持ssh转发功能。所以,如果你想用这个功能,就需要从那里获取最新版本,或者等一段时间,等它正式发布。

56

从1.4版本开始,fabric 增加了一个叫做环境选项的功能,可以让你使用代理转发。

env.forward_agent = True

更新: 在fabric 1.4.2之前,这个功能曾经有一些bug

撰写回答