我正在使用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
尽管它有效,但我对代码有些怀疑。请建议或指出是否有任何冗余方法,或者是否有更好的方法。
由于