paramiko 模块的使用


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]: