2016-10-03 4 views
0

私は私のVMにSSHしようとしているとgit pullVMへのSSHとParamikoを使用して「gitのプル」を実行する - Pythonの

  • を実行しなかったことはSSHは、gitのプルを
  • 正常に動作しているようだようです
  • パスワードを入力すると、それは受け取りたくないようです
  • 私に何か不足していますか?

私は

import paramiko 
import time 
import sys 
import os 
import pdb 

# Note 
# sudo pip install --user paramiko 
ip = "111.111.111.111" 
un = "root" 
pw = "abc" 

def ssh_con (ip, un, pw): 
    global ssh 
    ssh = paramiko.SSHClient() 
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
    ssh.connect(ip, username=un, password=pw) 

def cmd_io (command): 
    global ssh_cmd 
    ssh_cmd.send("%s \n" %command) 
    time.sleep(1) 
    output = ssh_cmd.recv(10000).decode("utf-8") 
    print (output) 

ssh_con(ip,un,pw) 
ssh_cmd = ssh.invoke_shell() 
print ("SSH CONNECTION ESTABLISHED TO %s" % ip) 
cmd_io("git pull") 
time.sleep(2) 
cmd_io(pw) 

を持っている私はあなたのSSH RSA鍵ペアは上のルートのためのパスフレーズを設定アップされているように見えます

git pull 
Enter passphrase for key '/root/.ssh/id_rsa': 

Enter passphrase for key '/root/.ssh/id_rsa': 
+0

最初に、次のような 'credential.helper'を作成してください:http://stackoverflow.com/questions/11403407/git-asks-for-username-everytime-i-push – Hackerman

答えて

1

を取得保管111.111.111.111。

ssh-keygen -t rsa 

を使用してssh rsaキーを再作成して、パスフレーズを空白のままにすることができます。

+0

セマンティクスですが、パスフレーズは' 111.111 .111.111'ではなく、ローカルホスト上のプライベートキー用です。また、sshキーを再作成すると、リモートシステムは新しい公開鍵を知る必要があります。 – pferate

関連する問題