赞
踩
- def ssh_scp(ip, port, user):
- private_key = paramiko.RSAKey.from_private_key_file('/usr/id_rsa')
- # 创建一个SSH客户端对象
- ssh = paramiko.SSHClient()
- # 设置访问策略
- ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- # 创建连接
- ssh.connect(ip, port, user, pkey=private_key)
- sftp = ssh.open_sftp()
- return sftp
代码:paramiko.RSAKey.from_private_key_file('/usr/id_rsa') 是选择你的秘钥,该方法的第二个参数为秘钥的密码,同时你要将你的公钥添加给你的ssh用户
注意:如果你生成秘钥有设置密码的话需要指定你的密码,源码如下图
这里主要记录下关于在windows下创建秘钥,我是在git上面生成,生成的命令和linux下有一点点不一样,需要指定 -m 参数,不然生成的秘钥不能使用,会出现:paramiko.ssh_exception.SSHException: not a valid RSA private key file 错误
该问题解决参考:https://www.cnblogs.com/dbf-/p/11114264.html
通过 ssh-keygen -m PEM -t rsa
命令生成 RSA 格式的密钥对,如下图所示,生成的秘钥是 RSA 格式的,参数指定密钥的格式,PEM(也就是 RSA 格式)是之前使用的旧格式
PS:如果像linux中,默认使用 ssh-keygen -t rsa 的方式生成秘钥,秘钥格式如下,但是paramiko使用该格式的秘钥连接windows服务器会出错
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。