python之SSH远程登陆

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无疑了。

相关文章
相关标签/搜索