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




 
 

 

转载于:https://www.cnblogs.com/huahua12/p/7491729.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值