如何使用Fabric通过代理建立SSH连接?

Joh*_*ith 11 python fabric

我正在尝试在Windows PC和Linux服务器(amazon ec2)之间建立SSH连接.

我决定使用使用python实现的Fabric API.

我在Windows PC上安装了Putty.

我的fabfile脚本如下所示:

import sys
from fabric.api import *


def testlive():
  print 'Test live ...'
  run("uptime")

env.use_ssh_config = False
env.host_string = "host.something.com"
env.user = "myuser"
env.keys_filename = "./private_openssh.key"
env.port = 22
env.gateway = "proxyhost:port"

testlive()
Run Code Online (Sandbox Code Playgroud)

我在使用私钥的同一目录中运行Fabric.

我可以使用Putty在这台机器上登录.

问题:我经常被要求指定用户的登录密码.

基于其他帖子(这里这里)我已经尝试过:

  • 将密钥文件作为列表传递给env.keys_filename
  • 使用username @ host_string
  • 使用env.host而不是env.host_string

如何正确配置Fabric来处理代理服务器和ssh私钥文件?

Alv*_*vra 2

以下应该有效。

env.key_filename = "./private_openssh.key"
Run Code Online (Sandbox Code Playgroud)

(注意您尝试中的拼写错误)