Paramiko无密码SSH NameError Raspberry Pi2

时间:2016-07-05 12:05:51

标签: bash ssh rsa raspberry-pi2 paramiko

我正在使用Raspberry Pi2设置传感器和报警以实现自动化。目前正在尝试使用我的Mac获取ssh文件传输功能。我能够使用ssh-keygen通过bash终端进行无密码设置,并将rsa公共文件共享给mac。但是,我无法使用Python,目前正在使用paramiko。

这是我的代码和产生的错误: -

IP="xxx.xxx.x.xxx"
username="xyz"
import paramiko
import os
ssh=paramiko.SSHClient()
privatekeyfile=os.path.expanduser('/address/on_pi/to/id_rsa')
mykey=paramiko.RSAKey.from_private_key_file(privatekeyfile)
ssh.connect(IP[0],username=user[0], pkey=mykey)
x_file=open('/address/on/remote/mac/file.txt','w')
x_file.write("anything")

错误如下: -

Trackback (most recent call last):
  File "my_paramiko.py", line 8, in <module>
    ssh.connect(IP[0],username=user[0], pkey=mykey)
NameError: name 'user' is not defined

我的python版本是2.7.3,paramiko是1.7.7.1(George)

我研究了解决方案,但大多数只使用bash终端,或者在读取密钥时出错。

修改

问题解决了。而不是使用

ssh.connect(IP[0],username=user[0], pkey=mykey)

我用过

ssh.connect("xxx.xxx.x.xxx", username="xyz", pkey=mykey)
stdin, stdout, stderr=ssh.exec_command("ls -l")

然后在sftp中调用

sftp=ssh.open_sftp()
sftp.put('file/address','file/address')
sftp.close
ssh.close

尽管它有效,但我对代码有些怀疑。请建议或指出是否有任何冗余方法,或者是否有更好的方法。

由于

0 个答案:

没有答案