一、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 [email protected]指令
然後運作以下代碼來實作
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無疑了。
轉載于:https://www.cnblogs.com/huahua12/p/7491729.html