Python基礎13 - Paramiko模組學習

來源:互聯網
上載者:User

標籤:編譯   命令   exe   int   command   檔案下載   ssh   主機   下載到本地   

@@@文章內容參照老男孩教育 Alex金角大王,武Sir銀角大王@@@

一、Paramiko模組安裝

 系統內容CentOS 7,Python3.6

1、安裝Python3.6

2、yum安裝openssl-devel

1 [[email protected] ~]# yum install openssl-devel -y 

3、重新編譯ssl模組

1 cd Python-3.6.22 ./configure --with-ssl3 make4 sudo make install

4使用pip安裝paramiko模組

1 [[email protected] ~]# python3 -m pip install paramiko
二、SSHClient

用於串連遠程伺服器並執行基本命令

基於使用者名稱密碼串連:

 1 import paramiko 2  3 # 建立SSH對象 4 ssh = paramiko.SSHClient() 5 # 允許串連不在know_hosts檔案中的主機 6 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 7 # 串連伺服器 8 ssh.connect(hostname = ‘10.0.0.10‘, port = 22, username = ‘root‘, password=‘12345‘) 9 10 # 執行命令11 stdin,stdout,stderr = ssh.exec_command(‘df‘)12 # 擷取命令結果13 result = stdout.read() or stderr.read()14 print(result.decode())15 16 # 關閉串連17 ssh.close()

基於公開金鑰密鑰串連

 1 import paramiko 2  3 private_key = paramiko.RSAKey.from_private_key_file(‘id_rsa_2048‘) 4  5 # 建立SSH對象 6 ssh = paramiko.SSHClient() 7 # 允許串連不在know_hosts檔案中的主機 8 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 9 # 串連伺服器10 ssh.connect(hostname = ‘10.0.0.10‘,port = 22,username = ‘root‘, pkey=private_key)11 12 # 執行命令13 stdin,stdout,stderr = ssh.exec_command(‘df‘)14 # 擷取命令結果15 result = stdout.read() or stderr.read()16 print(result.decode())17 18 # 關閉串連19 ssh.close()
三、SFTPClient

用於串連遠程伺服器並執行上傳下載

基於使用者名稱密碼上傳下載

 1 import paramiko 2  3 transport = paramiko.Transport((‘10.0.0.10‘,22)) 4 transport.connect(username=‘root‘,password=‘12345‘) 5  6 sftp = paramiko.SFTPClient.from_transport(transport) 7 # 將檔案上傳至伺服器 8 sftp.put(‘socketserver並發.py‘,‘/tmp/test.py‘) 9 # 將檔案下載到本地10 sftp.get(‘Python-3.6.2.tar‘,‘Python.tar‘)11 12 transport.close()

基於公開金鑰密鑰上傳下載 

 1 import paramiko 2  3 private_key = paramiko.RSAKey.from_private_key_file(‘id_rsa_2048‘) 4  5 transport = paramiko.Transport((‘10.0.0.10‘,22)) 6 transport.connect(username=‘root‘,pkey=private_key) 7  8 sftp = paramiko.SFTPClient.from_transport(transport) 9 # 將檔案上傳至伺服器10 sftp.put(‘socketserver並發.py‘,‘/tmp/test2.py‘)11 # 將檔案下載到本地12 sftp.get(‘Python-3.6.2.tar‘,‘Python.tar‘)13 14 transport.close()

 

Python基礎13 - Paramiko模組學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.