
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, чтобы помешать злоумышленникам, которые узнают закрытый ключ, получить полнофункциональную оболочку на сервере.