CMDB-(paramiko模塊 -- 實現ssh鏈接)

import paramiko # 實現ssh功能的模塊

ssh = paramiko.SSHClient() # 實例化對象

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 容許鏈接不在know_hosts文件中的主機

ssh.connect(hostname='192.168.6.202',port=22,username='root',password='111111') # 鏈接主機

'''linux用命令安裝軟件的時候,會詢問y/n,這個stdin就是用來接收輸入y仍是n | stuout命令執行後的結果,是一個管道,須要用read函數讀取 | stderr執行錯誤信息'''
stdin,stdout,stderr = ssh.exec_command('ifconfig') # 向服務器執行命令,返回的結果有3種

result = stdout.read()

print(result)

ssh.close() # 關閉ssh

 

2.5版本的報錯信息python

CryptographyDeprecationWarning: encode_point has been deprecated on EllipticCurvePublicNumbers and will be removed in a future version. Please use EllipticCurvePublicKey.public_bytes to obtain both compressed and uncompressed point encoding.linux

緣由:paramiko 2.4.2 依賴 cryptography,而最新的cryptography==2.5裏有一些棄用的APIsql

解決:刪掉cryptography 2.5,安裝2.4.2,就不會報錯了服務器

 pip uninstall cryptography==2.5 pip install cryptography==2.4.2

PS:paramiko是python原生的,還有衍生的ansible和fabric,這兩個底層核心的代碼就是paramiko模塊的代碼,又從新作了一個封裝ssh

相關文章
相關標籤/搜索