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无疑了。
python之SSH远程登录的更多相关文章
- python实现ssh远程登录
python实现ssh远程登录 # 测试过程中,比较常用的操作就是将DUT(待测物)接入网络中,然后远程操控对DUT, # 使用SSH远程登陆到主机,然后执行相应的command即可 # python ...
- Python实现ssh批量登录并执行命令
局域网内有一百多台电脑,全部都是linux操作系统,所有电脑配置相同,系统完全相同(包括用户名和密码),ip地址是自动分配的.现在有个任务是在这些电脑上执行某些命令,者说进行某些操作,比如安装某些软件 ...
- 【浅层优化实战】ssh远程登录Linux卡慢的全过程排查及解决方案
ssh远程登录Linux卡慢的全过程排查及解决方案 前言: 在linux操作系统使用过程中偶然一次感到使用ssh远程连接软件连接操作系统需要等待许久,第一次没在意,第二次也没在意,第三次有点忍受不住了 ...
- Firefly安装ROS及ssh远程登录配置
一.在Linux firefly 3.10.0 上安装ROS-indigo 快捷键 CTRL + ALT + T 打开终端并安装ROS-indigo sudo sh -c 'echo "d ...
- SSH客户端(如PuTTY)ssh远程登录Linux非常慢的解决方法
转:http://blog.useasp.net/archive/2014/05/19/solved-the-problem-of-ssh-client-such-as-putty-remote-lo ...
- ssh远程登录linux live系统
要想ssh远程登录,须要准备两件事:配置同网段IP和开启SSH服务. 因为live系统没有IP,所以首先须要配置IP. 我的live系统是在虚拟机上启动的,宿主IP为192.168.230.1,liv ...
- ssh远程登录linux服务器
ssh远程登录linux服务器 用法: ssh -l user -p port server_ip 或者 ssh -p port user@server_ip 参数: -l 后接要登录的远程系统用户名 ...
- ssh远程登录命令简单实例
ssh远程登录命令简单实例 ssh命令用于远程登录上Linux主机. 常用格式:ssh [-l login_name] [-p port] [user@]hostname 更详细的可以用ssh -h查 ...
- SSH(远程登录)原理
最近在研究hadoop,因为是分布式的,会涉及很多机器协作工作,但所有的操作都是需要进行权限验证的,namenode主机会尝试启动datanode主机上的进程等等.下面就用一张图来解释SSH登录验证的 ...
随机推荐
- python3 http.server 本地服务支持跨域
创建start.py,代码如下: #!/usr/bin/env python try: # Python 3 from http.server import HTTPServer, SimpleHTT ...
- 解决Mysql无法导入存在null数据的问题
其实很简单,在mysql的控制台输入 SET @@GLOBAL.sql_mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"; 然后重 ...
- PGI 遇到的坑
以下记录为本人在使用PGI社区版编译器遇到的问题,包含两类问题 1,PGI编译器本身存在你的bug. 2,在其他编译器编译运行没问题,在PGI中出现问题. 版本(18.11社区版) 1,(bug)内置 ...
- ANSI C遍历二维数组指针地址
#include <stdio.h> int main() { ][] = {,,,}; //等价于{{1,2},{3,4}}; ; i < ; i++) { ; j < ; ...
- C语言基础:汉诺塔(递归方法)
分析:当只有一个盘子的时候,只需要从将A塔上的一个盘子移到C塔上.当A塔上有两个盘子是,先将A塔上的1号盘子(编号从上到下)移动到B塔上,再将A塔上的2号盘子移动的C塔上,最后将B塔上的小盘子移动到C ...
- 将json文件转化为可视化
利用python转化为可视化: python -mjson.tool
- 如何在WIN7下安装虚拟机linux系统
需要支持多个平台的IT管理员经常会遇到如何在Windows 7计算机上安装Linux的问题.幸运的是有多种方法可供选择:双系统.Linux虚拟机和U盘引导. 当需要用到Windows 7和Linux时 ...
- CentOS 安装jdk 1.8
方法一:手动解压JDK的压缩包,然后设置环境变量 1.在/usr/目录下创建java目录 [root@localhost ~]# mkdir/usr/java [root@localhost ~ ...
- Opencv实现的陷波滤波器
在本示例中,共设计了三个函数,分别是巴特沃斯滤波器BLPF().巴特沃斯陷波滤波器notchFilter_BTW().高斯陷波滤波器notchFilter_GAUSS() 巴特沃斯陷波滤波器参见书上6 ...
- C#编程 socket编程之TcpClient,TcpListener,UdpClient
应用程序可以通过 TCPClient.TCPListener 和 UDPClient 类使用传输控制协议 (TCP) 和用户数据文报协议 (UDP) 服务.这些协议类建立在 System.Net.So ...