Можно ли добавить шифр для клиента sftp?

9890
Hazok

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

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

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

ssh -c aes256-ctr $ $ 

Тем не менее, когда я попытался сделать эквивалент для sftp:

sftp -oCipher=aes256-ctr $ <<< $'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
Вы можете скомпилировать openssh из исходного кода на машине rhel 5.x, которая решит ваши проблемы. 8 лет назад 0
вам нужно использовать `ciphers` вместо` cipher`. `cipher` для протокола ssh версии 1, который вы никогда не должны использовать. 8 лет назад 0
возможный дубликат [Как я могу исправить проблему несоответствия шифров с sftp?] (http://superuser.com/questions/918118/how-do-i-fix-a-cipher-mismatch-issue-with-sftp) Martin Prikryl 8 лет назад 0

2 ответа на вопрос

1
Z.T.

sftp -oпринимает ssh_option( источник ).

ssh_config говорит, что Cipherдля протокола ssh v1 (который вы никогда не должны использовать) и Ciphersдля протокола ssh v2.

0
Martin Prikryl

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

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

sftp -oCiphers=aes256-ctr 

Смотрите ssh_configсправочную страницу .


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

Смотрите sftpсправочную страницу :

-c cipher

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

Похожие вопросы