paramiko 仅作为 cron 作业不是有效的 RSA 私钥

paramiko only as cron job not valid RSA private key

Paramiko 脚本运行使用 id_rsa 从交互式终端中非常有用。当 运行 作为 cron 作业突然发现 id_rsa 无效。已对所有相关文件设置测试 777 权限,但无济于事。日志显示作业正在 运行 作为正确的用户。

paramiko.ssh_exception.SSHException: not a valid RSA private key file

因此,块末尾的 if 语句似乎仅作为 cron 作业执行: `

  def _read_private_key(self, tag, f, password=None):
            lines = f.readlines()
            start = 0
            beginning_of_key = "-----BEGIN " + tag + " PRIVATE KEY-----"
            while start < len(lines) and lines[start].strip()
                                                 != beginning_of_key:
            start += 1
        if start >= len(lines):
            raise SSHException("not a valid " + tag + " private key file")
` 

任何见解表示赞赏。

编辑:我的代码加载密钥 try: client = paramiko.SSHClient() client.load_system_host_keys() client.set_missing_host_key_policy(paramiko.WarningPolicy) client.connect(hostname = '<target>', key_filename = '/home/user/.ssh/id_rsa',username='root')

我遇到了类似的情况,ssh-keygen 来帮助我。您应该复制 id_rsa 并使用 ssh-keygen 将其转换为 RSA 类型,然后将该路径提供给 "key_filename"

将 "BEGIN OPENSSH PRIVATE KEY" 转换为 "BEGIN RSA PRIVATE KEY"

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa