SFTP의 암호 불일치 문제를 어떻게 해결합니까?

SFTP의 암호 불일치 문제를 어떻게 해결합니까?

서버가 RHEL 6.5로 업그레이드되고 sftp 및 ssh 명령을 통해 연결되는 RHEL 5.9 설치에 자동화된 bash 스크립트가 있는 문제가 발생했습니다.

이제 새 서버는 aes128-ctr, aes192-ctr 및 aes256-ctr 암호만 지원합니다.

aes256-ctr과 함께 -c 옵션을 사용하도록 ssh 명령을 업데이트할 수 있었고 이것이 작동했습니다.

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 상자에서 실행되는데 이것이 sftp가 아닌 ssh에서는 작동하는 이유가 궁금합니다.

또한 클라이언트 측 변경 없이 sftp를 사용하여 연결할 수 있도록 이 문제를 어떻게 수정합니까?

답변1

Cipher지시어는 SSH 버전 1(요즘에는 사용되지 않음)에 대한 것입니다.

SSH 버전 2의 경우 다음을 사용합니다 Ciphers.

sftp -oCiphers=aes256-ctr

참조ssh_config매뉴얼 페이지.


하지만 sftp스위치 -c도 지원한다는 점에 유의하세요. 따라서 를 사용할 필요가 없습니다 -o.

참조sftp매뉴얼 페이지:

-c cipher

데이터 전송을 암호화하는 데 사용할 암호를 선택합니다.
이 옵션은 직접 전달됩니다.SSH(1).

이 옵션은 다음부터 지원됩니다.오픈SSH 5.4. 변경 사항은 다음과 같이 위장됩니다."sftp(1)에서 대부분의 scp(1) 명령줄 인수를 지원합니다.".


명령줄 인수는 -c주로 지시문과 동일합니다 Ciphers(그러나 로 대체될 수 있음 Cipher). 에서 인용ssh매뉴얼 페이지:

-c cipher_spec

세션을 암호화하기 위한 암호 사양을 선택합니다.
프로토콜 버전 1에서는 단일 암호를 지정할 수 있습니다. 지원되는 값은 "3des", "blowfish" 및 "des"입니다. 프로토콜 버전 2의 경우 cipher_spec선호하는 순서대로 나열된 쉼표로 구분된 암호 목록입니다. Ciphers의 키워드를 참조하세요SSH_config(5)자세한 내용은.

관련 정보