1、SSH簡介安全
SSH(Secure Shell)屬於在傳輸層上運行的用戶層協議,相對於Telnet來講具備更高的安全性。ssh
2、SSH遠程鏈接加密
SSH遠程鏈接有兩種方式,一種是經過用戶名和密碼直接登陸,另外一種則是用過密鑰登陸。spa
一、用戶名和密碼登陸code
花花1要在本身的主機登陸花花2的電腦,她能夠經過運行如下代碼來實現blog
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模塊才能用)。ip
tips: 下載一個pip(超級好用!!!完美地避開本身導入模塊會出現的莫名其妙的錯誤),輸入pip install paramiko一句話解決pip
二、密鑰登陸class
花花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()
關於密鑰登陸,每一個人都有一個公鑰,一個私鑰,公鑰是給別人的,私鑰是本身留着,只有本身的私鑰能解開本身公鑰加密的文件。import
花花1有一個情書要發給花花2,就要先下載花花2的公鑰進行加密,這樣花花2就能用本身私鑰解開這情書,得到內容。
若是花花2要確認是不是花花1本人給她寄的情書,就去下載一個花花1的公鑰,隨機寫一些字母,用花花1的公鑰加密,發給對方,對方解密以後發回給花花2,若是花花2收到的解密後的字母和本身發出去的同樣,對方就是花花1無疑了。