2017-02-16 14 views
10

Я пытаюсь установить соединение SSH между ПК с ОС Windows и сервером Linux (amazon ec2).Как установить SSH-соединение через прокси-сервер с помощью Fabric?

Я решил использовать API Fabric, реализованный с использованием python.

У меня есть Putty, установленный на ПК с ОС Windows.

Мой 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() 

Я бегу ткань в той же директории с закрытым ключом.

Я могу войти на эту машину с помощью Putty.

Проблема: Меня постоянно просят ввести пароль для указанного пользователя.

на основе других сообщений (here и here) Я уже пробовал:

  • прохода в виде списка ключевого файла env.keys_filename
  • использовать имя пользователя @ host_string
  • использования env.host вместо env.host_string

Как правильно настроить ткань для работы с прокси-сервером и файлом закрытого ключа ssh?

+0

'" host.something.com "' равно 'user @ ip_addr_numbers'? Ваш модуль, как обрабатывать 'wellcome' и' handshake'? – dsgdfg

ответ

1

Следующие должны работать.

env.key_filename = "./private_openssh.key" 

(обратите внимание на опечатку в вашей попытке)

+0

Это не работает :) –

2

API Fabric является лучшим избегал действительно, слишком много ошибок и проблем (см отслеживания проблем).

Вы можете делать то, что вы хотите в 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 доступен от ПУМ как parallel-ssh.

+0

Спасибо за эту рекомендацию. Я попробую это как можно скорее. –

0

PuTTYgen является то, что вы будете использовать, чтобы сгенерировать ключ SSH затем загрузить скопированный ключ SSH на портал Cloud Management - See Joyant

+0

То есть по умолчанию обязательный :) Я уже давно это сделал :) –

-1

Вы должны генерировать и проверять подлинность секретного ключа, чтобы сделать это, вам нужно PuTTYgen для генерации SSH-доступа с использованием ключа RSA с паролем, комментария к ключу и соответствия ключевой фразе кодов, вот пошаговая инструкция по руководству SSH Access using RSA Key Authentication

 Смежные вопросы

  • Нет связанных вопросов^_^