2

Я столкнулся с проблемой при попытке подключиться к SFTP-серверу, который требует аутентификации с открытым ключом и паролем.

Исходный сервер является полностью современным сервером CentOS 7 (отладка SFTP показывает OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017). Намерение - это простой bash-скрипт для загрузки файлов.

При подключении без указания предпочтительного порядка аутентификации (т.е. при использовании публичного ключа по умолчанию publickey,password) он застревает в цикле предоставления ключа и никогда не запрашивает пароль:

sftp -v -i uat.key -oBatchMode=no <username>@<host>
...
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: password,publickey
debug1: Next authentication method: publickey
debug1: Trying private key: uat.key
Authenticated with partial success.
debug1: Authentications that can continue: password,publickey
debug1: Trying private key: uat.key
Authenticated with partial success.
debug1: Authentications that can continue: password,publickey
debug1: Trying private key: uat.key
Authenticated with partial success.
...loops forever

При изменении методов аутентификации он затем запрашивает пароль 3 раза, прежде чем продолжить (успешно!), Что, очевидно, вызывает проблемы с автоматизацией:

sftp -v -i uat.key -oPreferredAuthentications=password,publickey -oBatchMode=no <username>@<host>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: password,publickey
debug1: Next authentication method: password
<username>@<host>'s password:
Authenticated with partial success.
debug1: Authentications that can continue: password,publickey
Permission denied, please try again.
<username>@<host>'s password:
Authenticated with partial success.
debug1: Authentications that can continue: password,publickey
Permission denied, please try again.
<username>@<host>'s password:
Authenticated with partial success.
debug1: Authentications that can continue: password,publickey
debug1: Next authentication method: publickey
debug1: Trying private key: uat.key
debug1: Authentication succeeded (publickey).
Authenticated to <username>@<host> ([<ip>]:22).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: pledge: network
debug1: Sending environment.
debug1: Sending env LANG = en_GB.UTF-8
debug1: Sending subsystem: sftp
Connected to <username>@<host>.
sftp> exit

Мои исследования привели меня к этой статье IBM от 2012 года, которая охватывает вторую проблему, однако мне не удалось найти обходной путь для моего цикла частичной аутентификации в первой команде.

Может кто-нибудь более опытный с OpenSSH пролить свет на эту проблему?

0