时间:2021-05-22
1.在Linux上我们通过scp命令实现主机间的文件传送,通过ssh实现远程登录 ,比如 我们经常使用的xshell远程登录工具,就是基础ssh协议实现window主机远程登录Linux主机
下面简单的在python实现这几个功能 下面使用到paramiko模块,这个不是python的内置模块,我直接通过pycharm下载这个模块,
第一步实现一个简单的ssh登录命令 代码如下:
import paramiko# 创建SSH对象ssh = paramiko.SSHClient()# 允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#第一次登录的认证信息# 连接服务器ssh.connect(hostname='192.168.158.131', port=22, username='root', password='hadoop')# 执行命令stdin, stdout, stderr = ssh.exec_command('ls /')# 获取命令结果res,err = stdout.read(),stderr.read()result = res if res else errprint(result.decode())# 关闭连接ssh.close()登录并能实现简单的命令发送 和接收指令结果 ,这里面的方法写死了 ,但总算连接成功了,应为开始虚拟机的在学习iptables加了许多规则,并且在ssh 的服务器端修改了默认端口一直
连不上,修改配置文件后设置允许远程主机远程连接 ,/etc/ssh/sshd_config文件中配置
然后实现模拟Linux的scp 命令上传下载文件 ,使用了paramiko的Transport 简单的测试代码如下
import paramikotransport = paramiko.Transport(('192.168.158.131', 22))transport.connect(username='root', password='hadoop')sftp = paramiko.SFTPClient.from_transport(transport)# 将location.py 上传至服务器 /tmp/test.pysftp.put('fromlinux.txt', '/tmp/test_from_win')# 将remove_path 下载到本地 local_path# sftp.get('/root/oldgirl.txt', 'fromlinux.txt')transport.close()同样的也能 测试成功 ,能实现文件的上传与下载
最后注意到paramiko.RSAKey这个功能,能思想比较牛逼的ssh免密登录,核心的过程就是在Linux通过ssh-keygen在主机上生成一对密钥 ,公钥放在~/.ssh/authorized_keys文件在,将私钥拷贝到windows主机的环境目录下 ,
import paramikoprivate_key = paramiko.RSAKey.from_private_key_file('id_rsa31.txt')#要将私钥放在这里# 创建SSH对象ssh = paramiko.SSHClient()# 允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 连接服务器ssh.connect(hostname='10.0.0.41', port=22, username='fang', pkey=private_key)# 执行命令stdin, stdout, stderr = ssh.exec_command('df;ifconfig')result = stdout.read()print(result.decode())stdin, stdout2, stderr = ssh.exec_command('ifconfig')# 获取命令结果result2 = stdout2.read()print(result2.decode())# 关闭连接ssh.close()成功的实现了免密连接,代码知识做简单的测试用,以连接为主,没考虑其他的实际需要
这些东西玩了一下午,还是挺神奇的,
总结
到此这篇关于python实现ssh及sftp功能 的文章就介绍到这了,更多相关python实现ssh sftp 内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
设置XlightFTP服务器使用SSH2/SFTP协议XlightFTP服务器现在支持基于SSH2的安全文件传输协议(SFTP).SFTP不是基于SSH2的FT
本文实例讲述了Python实现建立SSH连接的方法。分享给大家供大家参考。具体实现方法如下:我需要实现一个Windows下远程连接到SSH服务器执行命令的功能,
本文实例讲述了Python基于sftp及rsa密匙实现远程拷贝文件的方法。分享给大家供大家参考,具体如下:如果两台服务器之间使用了RSA秘钥免密码登录的方式,可
paramiko是用python写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。利用该模块,可以方便的进行ssh连接和sftp协议
paramiko是python的SSH库,可用来连接远程linux主机,然后执行linux命令或者通过SFTP传输文件。关于使用paramiko执行远程主机命令