python之SSH遠程登錄


一、SSH簡介

  SSH(Secure Shell)屬於在傳輸層上運行的用戶層協議,相對於Telnet來說具有更高的安全性。

 

二、SSH遠程連接

  SSH遠程連接有兩種方式,一種是通過用戶名和密碼直接登錄,另一種則是用過密鑰登錄。

 

  1、用戶名和密碼登錄

  花花1要在自己的主機登錄花花2的電腦,她可以通過運行以下代碼來實現

import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 跳過了遠程連接中選擇‘是’的環節,
ssh.connect('IP', 22, '用戶名', '密碼') stdin, stdout, stderr = ssh.exec_command('df') print stdout.read()

  在這里要用到paramiko模塊,這是一個第三方模塊,要自自己導入(要想使用paramiko模塊,還要先導入pycrypto模塊才能用)。

  tips: 下載一個pip(超級好用!!!完美地避開自己導入模塊會出現的莫名其妙的錯誤),輸入pip install paramiko一句話解決

 

  2、密鑰登錄

 花花1要在自己的主機登錄花花2的電腦,花花1用命令ssh.keygen -t rsa生成公鑰和私鑰,她將自己的公鑰發給花花2,使用ssh-copy-id -i ~/ssh/id_rsa.pub huahua2@IP命令

然后運行以下代碼來實現
import paramiko private_key_path = '/home/auto/.ssh/id_rsa' key = paramiko.RSAKey.from_private_key_file(private_key_path) ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('IP', 22, '用戶名', key) stdin, stdout, stderr = ssh.exec_command('df') print stdout.read()

  關於密鑰登錄,每個人都有一個公鑰,一個私鑰,公鑰是給別人的,私鑰是自己留着,只有自己的私鑰能解開自己公鑰加密的文件。

  花花1有一個情書要發給花花2,就要先下載花花2的公鑰進行加密,這樣花花2就能用自己私鑰解開這情書,獲得內容。

  如果花花2要確認是否是花花1本人給她寄的情書,就去下載一個花花1的公鑰,隨機寫一些字母,用花花1的公鑰加密,發給對方,對方解密之后發回給花花2,如果花花2收到的解密后的字母和自己發出去的一樣,對方就是花花1無疑了。




 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM