Как я могу заставить Putty SCP не запрашивать подключение к новому устройству?

Я пытаюсь использовать программу Putty SCP для копирования файлов на сервер. Я запускаю его с подпроцессом Python:subprocess.check_output(pscp + ' -r -l ' + self._properties['ssh user'] + ' -pw ' + self._properties['ssh password'] + ' -4 -batch ' + local_path + ' ' + self._properties['ssh user'] + '@' + self._properties['target ip'] + ':' + destination_dir)

Который правильно разрешает следующую команду:pscp -r -l root -pw password -4 -batch projects\packages\controller-fw\build\packager\controller-fw-iMx6-release root@10.52.120.201:/root/temp

То, что я вижу, это прервать соединение:

error   26-Apr-2019 14:35:28    The server's host key is not cached in the registry. You
error   26-Apr-2019 14:35:28    have no guarantee that the server is the computer you
error   26-Apr-2019 14:35:28    think it is.
error   26-Apr-2019 14:35:28    The server's ssh-ed25519 key fingerprint is:
error   26-Apr-2019 14:35:28    ssh-ed25519 255 b9:a3:75:d7:c5:73:68:37:5d:6c:d1:61:6f:57:b4:ab

Есть ли способ автоматически принять ключ SSH? Я надеялся, что использование опции -batch разрешит это, но все, что он делает - это прерывает работу. Я смотрел в предшествующем с plink позвоните, но из руководства не ясно, что он будет вести себя по-другому. Есть ли правильный способ сделать это?

Прямо перед тем, как люди спрашивают, я переключаюсь с Paramiko из-за плохой производительности. Для загрузки файлов, которые FileZilla может сделать за 30 секунд, требуется> 5 минут.

2 ответа

Использование -hostkey Переключите, чтобы указать отпечаток ожидаемого ключа хоста:

pscp.exe -hostkey aa:bb:cc... ...

Я закончил тем, что добавил plink-вызов с входным каналом:

subprocess.check_call('echo y | ' + plink + ' -l ' + self._properties['ssh user'] + ' -pw ' + self._properties['ssh password'] + ' -ssh ' + self._properties['ssh user'] + '@' + self._properties['target ip'] + ' "echo > /dev/null"', shell=True)

Это привело к запуску команды plink в файле "ничего не делать" и передаче к нему подтверждения на тот случай, если будет запрошено сохранение ключа. Это похоже на клудж, но похоже, что оно функционирует.

Другие вопросы по тегам