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