Скрипт Paramiko отлично работает с интерактивного терминала, использующего id_rsa.При запуске в качестве задания cron он неожиданно обнаруживает, что id_rsa является недействительным.Тест 777 разрешений были установлены для всех связанных файлов безрезультатно.Журналы показывают, что задание запускается от имени соответствующего пользователя.
paramiko.ssh_exception.SSHException: not a valid RSA private key file
Итак, кажется, что если оператор в конце блока выполняется только как задание 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')