使用paramiko的无密码SSH

时间:2018-01-05 11:02:44

标签: python ssh paramiko

问题:我是Paramiko的菜鸟,尝试从远程服务器上的python脚本(在个人计算机上)运行一些命令。远程服务器不需要密码即可连接。

例如,如果我这样做 在我的Mac上root@[IPaddress],我已成功通过MacbookPro终端连接到远程服务器。

但是,我正在尝试使用Paramiko在Python脚本中执行此操作,无论我做什么,我都会收到身份验证错误或无身份验证方法。

我经历了Paramiko AuthenticationException issue,但是如果没有Paramiko的丰富经验,我的答案含糊不清。救命?

这是我的代码:

import paramiko
import os
from paramiko import SSHClient

#Borrowed from the linked post 
class SSHClient_noauth(SSHClient):
    def _auth(self, username, *args):
        self._transport.auth_none(username)
        return

#How do I implement? 
ssh =  SSHClient()
sshc = SSHClient_noauth()._auth(username="root") #Where's the ssh obj passed?
sshc.set_missing_host_key_policy(paramiko.AutoAddPolicy())
sshc.connect("10.xxx.xxx.xxx") 

1 个答案:

答案 0 :(得分:1)

好吧,不要让负面投票让我失望。

尝试做sshc.connect(remoteIP, username=username, password="")并且有效。如果有人因为工作而被困一两个小时以上,你可能想尝试加入一个""而不是None