2020/04/20 01-paramiko库使用

在这里插入图片描述
一般跟linux交互,喜欢用ssh,但是我们要编程,就需要一个 paramiko库,支持ssh2协议,通过ssh默认22端口连接到服务器
在这里插入图片描述

在这里插入图片描述
client肯定有方法来连接服务器,开启一个虚拟机
在这里插入图片描述
这里一旦cd,就跟linux一样跑到家目录里了,查看家目录路径

在这里插入图片描述
注意需要切换用户

在这里插入图片描述
用这个账号密码登录

在这里插入图片描述
在这里插入图片描述
还有一个执行命令,这里会返回三个东西
在这里插入图片描述
返回一个三元组

在这里插入图片描述
这个三元组就是这三个样子,输出完返回一个三元组,通过这个三元组可以拿不同的值。标准输出,标准失败,看一下不一定成功,有链接一般close

链接服务器然后执行命令

在这里插入图片描述
这里登陆一次,在.ssh文件夹里会有信息

在这里插入图片描述
会把登录成功的135信息放在这

在这里插入图片描述
把这个文件删除,防止干扰

在这里插入图片描述
没有应答
在这里插入图片描述
换成142就直接告诉你失败,没有找到known_hosts这个文件,登录过,确认过的主机会记录到这个文件,再次登录就会读这个文件,
在这里插入图片描述
ssh会把你每次访问的计算机的公钥信息,放到known_hosts,下次访问的时候就会比对,如果机器有所不同会提示警告

在这里插入图片描述
现在就直接连接服务器的时候不去里面找了
在这里插入图片描述
这里就是结果

在这里插入图片描述
换个没有的命令就出错

在这里插入图片描述
这个文件夹就是不访问了
在这里插入图片描述

现在把命令的返回值拿到了,ansible底层其实就是用了这个库,但是这个坏处就是暴露密码,所以要做免密登录
在这里插入图片描述
免密登录需要配置公钥私钥
在这里插入图片描述
上面私钥底下公钥
在这里插入图片描述
用ssh-copy-id -i就是公钥信息,把公钥拷贝到其他主机
在这里插入图片描述
现在这个目录就多了

在这里插入图片描述
公钥就过来了
在这里插入图片描述
试试现在能否免密登录,现在不提供密码,就立即执行报错了,因为命令不存在
在这里插入图片描述
一般分布式服务都要做免密登录,因为内部需要做一些操作

只要登录了其他主机

在这里插入图片描述
**
就会保留对方主机的信息**

在这里插入图片描述
跟你自己登录的信息还是有所不同,所以还是要加一下这一行代码

在这里插入图片描述

执行ifconfig失败
在这里插入图片描述
**
找不到命令就看下path路径**

在这里插入图片描述
还不在path路径里
在这里插入图片描述
加一下路径就拿回来了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
要加这样一句,否则会出错

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个文件权限很重要,600或者400都可以在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这个库要使用运维也是一个选择,一般称为无agent
在这里插入图片描述
无代理,直接连接过去,发送指令即可,称为agentless

在这里插入图片描述

发布了252 篇原创文章 · 获赞 6 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_42227818/article/details/105640156