首页 > 解决方案 > Paramiko、私钥和 cron

问题描述

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

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

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

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

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

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

它一直在失败。

要么使 cron 执行环境将所有变量都作为普通的 bash,要么能够正确地向 paramiko 指定私钥的位置,但我尝试的所有方法都不起作用。

我也试过:Paramiko can't access private key 但它没有用。

这个问题Paramiko: "not a valid RSA private key file"不适用,因为该脚本在从该用户的普通终端启动时有效。它与 cron 一起失败。

有什么线索吗?

Python3 帕拉米科 2.6.0 Ubuntu 20.4.2 LTS

标签: python-3.xcronparamikossh-keys

解决方案


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

在将 SFTP 与 Paramiko 连接时遇到糟糕的未处理类型 3(“未实现”)

通过根据该帖子应用私钥(并根据其他帖子进行转换:Paramiko:“不是有效的 RSA 私钥文件”注意我使用的是 Paramiko 2.6.0)...

现在它起作用了!

谢谢,马丁!


推荐阅读