Аутентификация не удалась

Аутентификация не удалась
You have no controlling tty and no DISPLAY.  Cannot read passphrase.
warning: Authentication failed.
Disconnected (local); authentication cancelled by user (Authentication cancelled by user.).
Disconnect reason 13, exit code = 77
scp: warning: ssh2 client failed to authenticate. (or you have too old ssh2 installed, check with ssh2 -V)

Я получаю эту ошибку при запуске своего скрипта. SSH работает в обоих направлениях между серверами.

решение1

Ваша проблема в том, что вы используете какой-то метод аутентификации, требующий ввода данных пользователем (в вашем случае, по-видимому, парольной фразы для расшифровки закрытого ключа или, может быть, пароля), но ваша программа не может получить никаких входных данных пользователя, поскольку она не запущена ни в графическом сеансе (что не позволяет sshоткрыть окно с запросом на ввод парольной фразы), ни в терминале (поэтому sshне может запросить у вас парольную фразу в интерактивном режиме).

sshработает, когда вы тестируете открытие сеанса, потому что в этом случае вы запускаете sshв терминале, поэтому нет проблем с получением парольной фразы.

Если ваш скрипт работает без управляющего tty (например, как cron job), вам нужна неинтерактивная аутентификация. Например, закрытый ключ без парольной фразы. Конечно, это несколько небезопасно, и вы, вероятно, захотите ограничить набор команд, исполняемых вашим скриптом через ssh, чтобы помешать злоумышленникам, которые узнают закрытый ключ, получить полнофункциональную оболочку на сервере.

Связанный контент