Как исправить проблему несоответствия шифра в sftp?

Как исправить проблему несоответствия шифра в sftp?

Я столкнулся с проблемой, когда сервер был обновлен до RHEL 6.5, а на установке RHEL 5.9 есть автоматизированные bash-скрипты, которые подключаются через команды sftp и ssh.

Теперь новый сервер поддерживает только шифры aes128-ctr, aes192-ctr и aes256-ctr.

Мне удалось обновить команды ssh, чтобы использовать опцию -c с aes256-ctr, и это сработало:

ssh -c aes256-ctr ${remote_host} ${my_command}

Однако, когда я попытался сделать то же самое для sftp:

sftp -oCipher=aes256-ctr ${remote_host} <<< $'get /home/me/* me/'

Я получаю сообщение об ошибке, что клиент не поддерживает те же шифры, что и сервер:

не найдено ни одного соответствующего шифра: клиент arcfour256,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc сервер aes128-ctr,aes192-ctr,aes256-ctr

Эти команды ssh и sftp выполняются на одном и том же компьютере RHEL 5.9, поэтому мне интересно, почему это работает для ssh, но не для sftp?

Кроме того, как это исправить, чтобы я мог подключиться с помощью sftp без каких-либо изменений на стороне клиента?

решение1

Директива Cipherпредназначена для SSH версии 1 (которая в настоящее время не используется).

Для SSH версии 2 используйте Ciphers:

sftp -oCiphers=aes256-ctr

Смотритеssh_configстраница руководства.


Хотя обратите внимание, что также sftpподдерживает -cкоммутатор. Так что нет необходимости использовать -o.

Смотритеsftpстраница руководства:

-c cipher

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

Опция поддерживается сOpenSSH 5.4. Изменение замаскировано под«Поддержка большинства аргументов командной строки scp(1) в sftp(1)".


Обратите внимание, что аргумент командной строки -cв первую очередь эквивалентен директиве Ciphers(хотя он может возвращаться к Cipher). Цитата изsshстраница руководства:

-c cipher_spec

Выбирает спецификацию шифра для шифрования сеанса.
Протокол версии 1 допускает спецификацию одного шифра. Поддерживаемые значения: «3des», «blowfish» и «des». Для протокола версии 2 cipher_spec— это разделенный запятыми список шифров, перечисленных в порядке предпочтения. См. Ciphersключевое слово вssh_config(5)Чтобы получить больше информации.

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