【问题标题】:SSH into VM and run "git pull" using Paramiko - PythonSSH 进入 VM 并使用 Paramiko - Python 运行“git pull”
【发布时间】:2016-10-04 04:46:49
【问题描述】:

我正在尝试通过 SSH 连接到我的虚拟机并执行了 git pull

  • SSH 似乎工作正常
  • 似乎执行了 git pull
  • 但是当我提供密码时,它似乎不接受它
  • 我错过了什么吗?

我有

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)

我一直得到

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

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

【问题讨论】:

标签: python git ssh paramiko


【解决方案1】:

您的 SSH Rsa 密钥对似乎已在 111.111.111.111 上设置了 root 密码。您可以使用以下命令重新创建 ssh rsa 密钥:

ssh-keygen -t rsa

只需将密码短语留空。

【讨论】:

  • 语义,但密码不是111.111.111.111,而是本地主机上的私钥。如果您重新创建 ssh 密钥,远程系统将需要知道新的公钥。
猜你喜欢
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 2016-07-08
  • 2015-12-30
  • 2020-07-20
  • 1970-01-01
  • 2012-05-31
相关资源
最近更新 更多