2017-03-08 1 views
0

Gen awotion on demand aws 인스턴스를 사용 중이며 Python에서 연결하려고합니다. 파이썬에서 인스턴스에 adb 명령을 보내고 싶습니다. 여기에 모든 컴퓨터에서 인스턴스를 연결하기위한 튜토리얼이있다 : https://www.genymotion.com/help/on-demand/tutorial/enable-disable-adb/paramiko ec2 장치를 연결하는 동안 EOFError

ssh 명령 인스턴스에 대한 SSH 터널을 만드는 데 사용은 다음과 같습니다

ssh -i key.pem -NL 5555:localhost:5555 [email protected]_ip 

내가 paramiko 라이브러리를 사용하려고하고 앞으로. py 데모를 repo (https://github.com/paramiko/paramiko/blob/master/demos/forward.py)에서 가져옵니다.

첫째, 나는 CLI를 통해 터널을 만들려고, 이것은 무엇 나는 SSH 터널 생성을위한 입력 : 나는 '나오지 않았어

Connecting to ssh host <instance_ip>:22 ... 
*** Failed to connect to <instance_ip>:22: EOFError() 

:

python forward.py <instance_ip> -r localhost:5555 -u root -p 5555 -K "path/to/mykey.pem" 

응답했다을 여기서 문제가 무엇인지 파악하십시오.

누군가 나를 도와 줄 수 있습니까? 대단히 감사합니다 !!

답변

0

다음 코드 스 니펫을 사용하여 Python의 EC2 인스턴스로 ssh를 보낼 수 있습니다.

key = paramiko.RSAKey.from_private_key_file(path/to/mykey.pem) 
client = paramiko.SSHClient() 
client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 

# Connect/ssh to an instance 
try: 
    client.connect(hostname=instance_ip, username="root", pkey=key) 

    # Execute a command(cmd) after connecting/ssh to an instance 
    stdin, stdout, stderr = client.exec_command(cmd) 
    print stdout.read() 

    # close the client connection once the job is done 
    client.close() 
    break 

except Exception, e: 
    print e 
+0

나는 실제로 이것 (그리고 또한 이것과 같은) 많은 발췌 문장을 시도했다. 매번 똑같은 "EOFError"를 던졌습니다. 내 개인 키 파일에 문제가있는 것 같지만 실제로 어떤 문제인지 모르겠습니다. – Johnny127

+0

게시 한 코드의 경우 작동하지 않는 이유는 1) 잘못된 pem 키 2) 잘못된 인스턴스 IP 3) 잘못된 EC2 인스턴스 사용자 이름 일 수 있습니다. 3을 확인하십시오. 도움이되지 않으면 여기에 코드를 게시하십시오. 참고 : pem 파일 이름을 포함한 전체 파일 경로를 제공하십시오. 예 : key_path = os.path.join ('license', 'file_name.pem') – Venkatesh

+0

또한 키와 IP 주소가 Linux 머신에서 ssh로 잘 연결되어 있는지 확인하고 연결이 설정되었는지 확인하십시오. ssh -i file_name.pem user_name @ ip_address – Venkatesh

관련 문제