python的paramiko实现ssh登录

这段代码演示了如何使用Python的paramiko库通过RSA密钥进行SSH连接,执行远程命令。关键步骤包括加载私钥文件,设置SSH客户端策略,连接远程主机并执行命令。注意检查私钥文件权限,解决权限错误,以及确保私钥格式正确。适用于自动化运维场景。
摘要由CSDN通过智能技术生成

通过私钥公钥实现远程机器访问,代码demo如下

def ssh(hostname, cmd):
    ida_key = paramiko.RSAKey.from_private_key_file('/Users/apple/Downloads/id_rsa')
    try:
        ssh_obj = paramiko.SSHClient()
        ssh_obj.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh_obj.connect(hostname=hostname, port=22, username='work', pkey=ida_key, timeout=3)
    except Exception as e:
        print(e)
        return False, hostname + "登录失败!"
    stdin, stdout, stderr = ssh_obj.exec_command(cmd)
    error = stderr.read().decode('utf-8').strip()
    if error:
        return False, '{hostname},{cmd}执行时出现问题'
    else:
        result = stdout.read()
        ssh_obj.close()
        return True, result.decode('utf-8').strip()

注意:

1./Users/apple/Downloads/id_rsa 私钥文件,该文件权限需要赋予600  chmod 600 id_rsa

2.如果出现Authentication failed 权限错误提示

        解决办法1:升级 openssh-server版本 yum update openssh-server -y

        解决办法2:ssh_obj.connect中添加disabled_algorithms=dict(pubkeys=["rsa-sha2-512", "rsa-sha2-256"])

3.私钥id_rsa文件中

         begin要为RSA如下:-----BEGIN RSA PRIVATE KEY-----

        不能是OPENSSH如下:-----BEGIN OPENSSH PRIVATE KEY-----

4.python3版本,指定运行方式

 /opt/soft/python3.6/bin/python3 SSHClient.py​​​​​​​        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漁陽

彼此共勉,砥砺前行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值