1、安装
pip install paramiko
2、用账号密码登录
In [1]: import paramiko
In [2]: ssh = paramiko.SSHClient()
In [3]: ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
In [4]: ssh.connect('192.168.28.46', '2020', 'root', '123456')
3、用秘钥登录
In [1]: import paramiko
In [2]: ssh = paramiko.SSHClient()
In [3]: ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
In [5]: key = paramiko.RSAKey.from_private_key_file('/tmp/id_rsa')
In [7]: ssh.connect('192.168.28.46', '2020', 'root', pkey=key)
4、常用的操作
(1)执行命令获取执行结果
exec_command() return 1个元组,里面有三个元素分别为标准输入,标准输出,错误输出。
In [1]: import paramiko
In [2]: ssh = paramiko.SSHClient()
In [3]: ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
In [4]: ssh.connect('192.168.28.46', '22016', 'root', '000Q8Kmi3KFBTv1L8St111')
In [5]: stdin, stdout, stderr = ssh.exec_command('ls /root')
In [6]: stdin.read()
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-6-7a7f579b7d6c> in <module>
----> 1 stdin.read()
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/paramiko/file.py in read(self, size)
190 raise IOError("File is closed")
191 if not (self._flags & self.FLAG_READ):
--> 192 raise IOError("File is not open for reading")
193 if (size is None) or (size < 0):
194 # go for broke
OSError: File is not open for reading
In [7]: stdout.read()
Out[7]: b'agent.sh\nanaconda-ks.cfg\nletsencrypt.tar.gz\nmon-disk.sh\nZeroClipboard.js\n'
In [8]: stderr.read()
Out[8]: b''
In [9]: