Это проблема с SSH.
В доступе отказано, повторите попытку.
Это означает, что ssh не может войти в систему. Либо у вашего агента ssh не загружен правильный ключ, либо вы запускаете сценарий от имени другого пользователя, либо среда не передается правильно. Убедитесь, что переменные SSH_AUTH_SOCK
и SSH_AGENT_PID
переданы в подпроцесс вашего скрипта Python.
Ошибка проверки ключа хоста.
Эта ошибка означает, что удаленный хост не известен ssh. Это означает, что ключ хоста не найден в файле $HOME/.ssh/known_hosts
. Опять же, убедитесь, что вы проверяете домашний каталог эффективного пользователя скрипта.
[EDIT] Когда вы запускаете скрипт, тогда python станет «входом» ssh: ssh больше не подключается к консоли и будет запрашивать у python пароль для входа в систему. Поскольку python не знает, чего хочет ssh, он игнорирует запрос. ssh пытается трижды и умирает.
Чтобы решить эту проблему, выполните следующие команды перед запуском скрипта Python:
eval $(ssh-agent)
ssh-add path-to-your-private-key
Замените path-to-your-private-key
на путь к вашему личному ключу (тот, который вы используете для входа в систему). ssh-add
запросит ваш пароль, и ssh-agent сохранит его в безопасном месте. Это также изменит вашу среду. Поэтому, когда SSH запустится в следующий раз, он заметит, что запущен агент ssh, и сначала спросит об этом. Поскольку ssh-agent знает пароль, ssh будет входить в систему, не беспокоясь о Python.
Чтобы решить вторую проблему, выполните вторую команду ssh вручную один раз. Затем ssh добавит второй хост в свои файлы и больше не будет спрашивать.
[EDIT2] См. это руководство для подробного объяснения того, как войти на удаленный сервер через ssh с вашим закрытым ключом.