个人认为python的paramiko模块是运维人员必学模块之一,其ssh登录功能是旅行居家必备工具。 安装paramiko很简单,pip install paramiko就搞定了,其依赖库会被一并安装。 paramiko的官方站点在这里: http://www.paramiko.org/ 。有需要深入研究的可以阅读官
个人认为python的paramiko模块是运维人员必学模块之一,其ssh登录功能是旅行居家必备工具。 安装paramiko很简单,pip install paramiko就搞定了,其依赖库会被一并安装。 paramiko的官方站点在这里:。有需要深入研究的可以阅读官方文档。 paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能。 一、基于用户名和密码的 sshclient 方式登录
二、基于用户名和密码的 transport 方式登录 方法1是传统的连接服务器、执行命令、关闭的一个操作,有时候需要登录上服务器执行多个操作,比如执行命令、上传/下载文件,方法1则无法实现,可以通过如下方式来操作
三、 基于公钥密钥的 SSHClient 方式登录
以上需要确保被访问的服务器对应用户.ssh目录下有authorized_keys文件,也就是将服务器上生成的公钥文件保存为authorized_keys。并将私钥文件作为paramiko的登陆密钥 四、 基于密钥的 Transport 方式登录
五、传文件 SFTP
六、 实现输入命令立马返回结果的功能 以上操作都是基本的连接,如果我们想实现一个类似xshell工具的功能,登录以后可以输入命令回车后就返回结果:
注意:在windows中,sys.stdin不是一个socket或者file-like对象,而是一个PseudoOutputFile对象,不能被select处理。所以上面的脚本不能在windows中运行,只能用于linux。 七、上例支持tab自动补全
八、 SSH服务端的实现 实现SSH服务端必须继承ServerInterface,并实现里面相应的方法。具体代码如下:
|
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27