paramiko使用秘钥连接

代码如下

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 错误

 

windows生成秘钥

该问题解决参考: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服务器会出错

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值