paramiko是基於python實現的ssh2遠端安全連線,支援認證及金鑰方式。可以實現遠端命令執行、檔案傳輸、中間ssh**等功能。
paramiko包含兩個核心元件:sshclient和sftpclient
它是ssh服務會話的高階表示,該類封裝了傳輸(transport)、通道(channel)及sftpclient的校驗、建立的方法,通常用於執行遠端命令,下面是個例子:
importparamiko
#建立ssh物件
ssh =paramiko.sshclient()
#允許連線不在know_hosts檔案中的主機
ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())
#連線伺服器
ssh.connect(hostname='
192.168.10.20
', port=22, username='
test
', password='
123')#
執行命令
stdin, stdout, stderr = ssh.exec_command('
pwd')#
獲取命令結果
result =stdout.read()
print(str(result,encoding='
utf8'))
#關閉連線
ssh.close()
執行結果:
/home/test/
下面介紹它的幾種常用方法
connect方法實現了ssh連線並校驗
引數有:
port:埠,預設22
username:登入使用者名稱
password:密碼
pkey:私鑰方式用於身份驗證
timeout:乙個可選的超時時間的tcp連線
allow_agent:設定為false時用於禁止連線到ssh**
compress:設定為true時開啟壓縮。
遠端命令執行方法,該命令的輸入輸出流為標準輸入(stdin)、輸出(stdout)、錯誤(stderr)的python檔案物件。
引數:command:執行命令
bufsize:檔案快取區大小,預設為-1(不限制)
載入本地公鑰校驗檔案,預設為~/.ssh/known_hosts,飛預設路徑需要手動指定
引數:filename:指定的遠端主機公鑰記錄檔案。
設定連線的遠端主機沒有本地主機金鑰或hostkeys物件時的策略,目前支援三種,分別是autoaddpolicy、rejectpolicy、warningpolicy,僅限用於sshclient類,分別代表的含義如下:
autoaddpolicy,自動新增主機名及主機金鑰到本地hostkeys物件,並將其儲存,不依賴load_system_host_keys()的配置,即使~/.ssh/know_hosts不存在也不產生影響
rejectpolicy,自動拒絕位置的主機名和金鑰,依賴load_system_host_keys()的配置
warningpolicy,用於記錄乙個位置的主機金鑰的python的警告,並接受它,功能上與autoaddpolicy相似,但未知主機會有告警
importparamiko
transport = paramiko.transport(('
127.0.0.1
',17181))
transport.connect(username='
tecom
',password='
phgyzvyx43mdrjvj')
sftp =paramiko.sftpclient.from_transport(transport)
#將location.py 上傳至伺服器 /tmp/test.py
下面介紹sftpclient的常用方法。
建立乙個已連通的sftp客戶端通道
引數說明:t(transport),乙個已通過驗證的傳輸物件。
上傳本地檔案到遠端sftp服務端
引數說明:localpath:str型別,上傳的本地檔案全路徑(源)
remotepath:str型別,遠端檔案全路徑(目標)
callback:獲取已接收的位元組數及總傳輸位元組數,以便毀掉函式呼叫,預設為none
confirm(bool):檔案上傳完畢i後是否呼叫stat()方法,以便確認檔案大小
引數:remotepath,遠端路徑(源)
localpath,本地路徑(目標)
sftpclient類其他常用方法
mkdir:在sftp伺服器端建立目錄,如sftp.mkdir('/home/test',0755)
remove:刪除sftp伺服器端指定目錄,如sftp.remove('/home/test')
rename:重新命名sftp伺服器端檔案或目錄,如sftp.rename('/home/test.sh','/home/test1.sh')
stat:獲取sftp伺服器端指定檔案資訊,如sft.stat('/home/testfile.sh')
listdir:獲取遠端sftp伺服器端指定目錄資訊,以python的列表(list)形式返回,如,sftp.listdir('/home')
Python資料庫程式設計 MySQL
要使用python連線mysql 首先得安裝mysql 我這裡已安裝了mysql 並設定 賬戶 root 密碼為 123456 mysql 檔案 create database stu use stu create table students snum int 6 not null,sname v...
Python資料庫程式設計MySQL u
本章主要講解ubuntu下的mysql資料庫的安裝與python資料庫程式設計。本節主要內容是安裝mysql伺服器 客戶端和python訪問mysql的介面模組三部分內容。安裝mysql伺服器軟體 sudo apt get install mysql server mysql伺服器端安裝過程中會彈出...
python資料庫入門程式設計。
一 yum install mariadb server y 對資料庫安全初始化 設定登陸密碼 二 資料庫視覺化 2.安裝php mysql連線資料庫 3.重啟httpd 4.將安裝包複製到 var www html 預設發布目錄下,便於測試 cd var www html cp root desk...