Paramiko、私钥和 cron

Paramiko, private keys and cron

我在尝试使用私有 public 密钥设置 paramiko scp 时遇到一些问题。

我认为问题与 paramiko 本身关系不大,但事实上这是在 Cron 中启动的(用户 cron (crontab -e))。

所以脚本可以在普通终端上运行,但不能在 cron 上运行。我试图在调用方法连接时指定私钥的确切位置 (key_filename="/home/myuser/.ssh/id_rsa")。它 returns 返回以下错误:“不是有效的 RSA 私钥文件”。

另一方面,在 cron 中,我尝试声明要使用的终端:

SHELL=/bin/bash
PATH=... (all the typical values)
HOME=/home/myuser

还尝试在启动任务之前获取 $HOME/profile。

一直失败。

要么使 cron 执行环境具有所有变量作为正常 bash,要么能够正确地向 paramiko 指定私钥的位置就可以了,但是我尝试的所有事情都没有工作。

我也试过:Paramiko can not access private key 但是没有用。

这个问题 不适用,因为脚本在该用户从普通终端启动时有效。它与 cron 一起失败。

有线索吗?

Python3 帕拉米科 2.6.0 Ubuntu 20.4.2 LTS

感谢 Martin Prikryl,在激活 paramiko 日志记录后,它报告了一个关于未实现的错误,我在这里结束:

Getting Oops, unhandled type 3 ('unimplemented') while connecting SFTP with Paramiko

通过根据 post 应用私钥(并根据其他 post 进行转换: 注意我使用的是 Paramiko 2.6.0)。 .

现在可以了!!

谢谢,马丁!