sftp -o
принимает ssh_option
( источник ).
ssh_config
говорит, что Cipher
для протокола ssh v1 (который вы никогда не должны использовать) и Ciphers
для протокола ssh v2.
Я столкнулся с проблемой, когда сервер был обновлен до 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 без каких-либо изменений на стороне клиента?
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». Для протокола версии 2cipher_spec
- это разделенный запятыми список шифров, перечисленных в порядке предпочтения. СмотритеCiphers
ключевое слово в ssh_config (5) для получения дополнительной информации.