Как установить SSH-соединение через прокси-сервер с помощью Fabric?
Я пытаюсь установить соединение SSH между ПК с ОС Windows и сервером Linux (amazon ec2).
Я решил использовать API Fabric, реализованный с помощью python.
У меня есть Putty, установленный на ПК с Windows.
My fabfile script выглядит так:
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.
Проблема: Я постоянно прошу ввести пароль для указанного пользователя.
Основываясь на других сообщениях (здесь и здесь), я уже пробовал:
- передать в качестве списка ключевой файл в env.keys_filename
- использовать имя пользователя @host_string
- используйте env.host вместо env.host_string
Как правильно настроить Fabric для работы с прокси-сервером и файлом закрытого ключа ssh?
Ответы
Ответ 1
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 доступен из pip как parallel-ssh
.
Ответ 2
Следующее должно работать.
env.key_filename = "./private_openssh.key"
(обратите внимание на опечатку в вашей попытке)
Ответ 3
PuTTYgen - это то, что вы будете использовать для генерации вашего ключа SSH, а затем загрузите скопированный ключ SSH на портал управления областью - См. Joyant
Ответ 4
Вам нужно будет сгенерировать и аутентифицировать закрытый ключ, для этого вам понадобится PuTTYgen для генерации SSH-доступа с использованием ключа RSA с паролем, комментариями клавиш и соответствия ключевой фразе, вот пошаговая инструкция для руководства SSH Доступ с использованием аутентификации ключа RSA