目錄
paramiko是用python語言寫的乙個模組,遵循ssh2協議,支援以加密和認證的方式,進行遠端伺服器的連線。由於使用的是python這樣的能夠跨平台執行的語言,所以所有python支援的平台,如linux, solaris, bsd, macos x, windows等,paramiko都可以支援,因此,如果需要使用ssh從乙個平台連線到另外乙個平台,進行一系列的操作時,paramiko是最佳工具之一。
1:用telnet
2:用putty
3:用winscp
4:用xmanager等…
1:linux上安裝ftp並配置
2:linux上安裝sambe並配置…
大家會發現,常見的解決方法都會需要對遠端伺服器必要的配置,如果遠端伺服器只有一兩台還好說,如果有n臺,還需要逐台進行配置,或者需要使用**進行以上操作時,上面的辦法就不太方便了。
使用paramiko可以很好的解決以上問題,比起前面的方法,它僅需要在本地上安裝相應的軟體(python以及pycrypto),對遠端伺服器沒有配置要求,對於連線多台伺服器,進行複雜的連線操作特別有幫助。
ssh.py #相當於 ssh簡單連線操作原理ssh_sft.py #相當於 ssh的scp傳檔案原理__author__ = "burgess zheng"
import paramiko
# 建立ssh物件
ssh = paramiko.sshclient()
# 允許連線不在know_hosts檔案中的主機#如:ssh rsa加密連線原理
ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())
# 連線伺服器
ssh.connect(hostname='10.0.0.150', port=52113, username='root', password='123456')
# 執行命令
stdin, stdout, stderr = ssh.exec_command('df')#linux命令返回3個值
# 執行ssh.exec_command('df') 該命令會返回3個值
#stdin:標準輸入 stdout:標準輸出 stderr:標準錯誤
res,err = stdout.read(),stderr.read()
#stdoutread():讀標準輸出的結果 stderr.read()讀標準錯誤的結果
#把讀出的結果分別賦值給res和err
result = res if res else err
#三元運算 如果res有值result = res 如果res沒值就 result = err
print(result.decode())
# 關閉連線
ssh.close()
__author__ = "burgess zheng"
import paramiko
transport = paramiko.transport(('10.0.0.31', 52113))
transport.connect(username='root', password='123456')
#上面的只做連線
sftp = paramiko.sftpclient.from_transport(transport)
#sftp.put('筆記', '/tmp/test_from_win')
#將location.py 上傳至伺服器 /tmp/test.py
sftp.get('/root/oldgirl.txt', 'fromlinux.txt')
transport.close()
ssh rsaa #python基於金鑰的連線(和ssh基於金鑰連線一樣的)__author__ = "burgess zheng"
#基於秘鑰連線
import paramiko
private_key = paramiko.rsakey.from_private_key_file('id_rsa31.txt')
#指定你的私鑰的位置
# 建立ssh物件
ssh = paramiko.sshclient()
# 允許連線不在know_hosts檔案中的主機
ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())
# 連線伺服器
ssh.connect(hostname='10.0.0.41', port=52113, username='gongli', pkey=private_key)
# 執行命令
stdin, stdout, stderr = ssh.exec_command('df')
result = stdout.read()
print(result.decode())
stdin, stdout2, stderr = ssh.exec_command('ifconfig')#兩條命令可以當做一條命令使用(''df;ifconfg)
# 獲取命令結果
result2 = stdout2.read()
print(result2.decode())
# 關閉連線
ssh.close()
import paramiko
private_key = paramiko.rsakey.from_private_key_file('/home/auto/.ssh/id_rsa')
transport = paramiko.transport(('hostname', 22))
transport.connect(username='wupeiqi', pkey=private_key )
sftp = paramiko.sftpclient.from_transport(transport)
# 將location.py 上傳至伺服器 /tmp/test.py
sftp.put('/tmp/location.py', '/tmp/test.py')
sftp.get('remove_path', 'local_path')
transport.close()
Python實戰之pymysql模組實戰
安裝 pip3 install pymysql author burgess zheng usr bin env python coding utf 8 import pymysql 建立連線 conn pymysql.connect host 10.0.0.150 port 3306,user p...
Python之基礎實戰專案
後言我們在之前的學習內容中就可以大概的了解了python的乙個基礎用法。所以在之前的python 一 python 二 python 三 的基礎上我們就對其進行乙個整合。let go,展開。students def selstu 查詢所有 return for stu in students pri...
Python之隨機森林實戰
實現 1 coding utf 8 2 3created on tue sep 4 09 38 57 201845 author zhen 6 78 from sklearn.ensemble import randomforestclassifier 9from sklearn.model sel...