我正在尝试在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()
我在使用私钥的同一目录中运行Fabric。
我可以使用Putty在这台机器上登录。
问题:我经常被要求输入指定用户的登录密码。
如何正确配置Fabric来处理代理服务器和ssh私钥文件?
答案 0 :(得分:2)
最好避免使用Fabric的API,以及太多的错误和问题(请参阅问题跟踪器)。
您可以使用以下内容在Python中执行您想要的操作:
from __future__ import print_function
from pssh import ParallelSSHClient
from pssh.utils import load_private_key
client = ParallelSSHClient(['host.something.com'],
pkey=load_private_key('private_openssh.key'),
proxy_host='proxyhost',
proxy_port=<proxy port number>,
user='myuser',
proxy_user='myuser')
output = client.run_command('uname')
for line in output['host.something.com'].stdout:
print(line)
ParallelSSH可从pip parallel-ssh
获得。
答案 1 :(得分:1)
以下情况应该有效。
env.key_filename = "./private_openssh.key"
(注意你尝试中的拼写错误)
答案 2 :(得分:0)
您将使用PuTTYgen生成SSH密钥,然后将复制的SSH密钥上传到您的云管理门户 - See Joyant
答案 3 :(得分:-1)
您必须生成并验证私钥,为此,您需要PuTTYgen使用RSA密钥生成SSH访问密码,密钥注释并符合密钥密码,这是一步一步的指南文档{{ 3}}