최근 다수의 VOS 및 OpenVOS 고객들이 표준 FTP 클라이언트(ftp.pm)에서 보안 FTP 클라이언트(sftp.pm)로 전환했습니다. FTP 대신 sftp를 사용하는 데는 두 가지 주요 이유가 있습니다. 첫째, sftp는 비밀번호를 절대 평문으로 전송하지 않으며 항상 암호화합니다. 둘째, sftp는 전송 중 데이터를 암호화합니다. 그러나 많은 고객들이 VOS 명령 매크로를 작성하여 ftp에 "사전 정의된" 사용자 ID와 비밀번호를 제공해 왔으며, sftp에는 사용자 ID를 미리 지정할 수 있지만 비밀번호를 미리 지정할 방법이 없다는 점을 발견했습니다. sftp 명령이 비밀번호를 요청할 때까지 기다린 후 키보드로 입력해야 합니다.
이는 모든 운영체제에서 sftp의 표준 절차입니다. 처음에는 이 동작이 마음에 들지 않을 수 있지만, sftp는 사용자에게 도움을 주고 있는 것입니다. sftp는 의도적으로 터미널에서 직접 비밀번호를 읽으며, "stdin"에서 읽지 않습니다. sftp 개발자들은 비밀번호를 파일이나 셸 스크립트에 저장하는 것을 좋지 않은 관행으로 간주했습니다. 이는 매우 안전하지 않습니다.
다행히 sftp 개발자들은 이 문제에 대한 훌륭한 해결책을 제시했습니다. 공개 키 메커니즘을 통한 사용자 인증을 구현했습니다. 소스 모듈(sftp 또는 ssh 명령을 사용하는 컴퓨터)의 홈 디렉터리 아래 .ssh 하위 디렉터리에 개인 키를 저장하고, 대상 모듈의 동일 디렉터리에 공개 키를 저장하면, 이후 로그인(또는 sftp 사용) 시 비밀번호를 입력할 필요가 전혀 없습니다.
이 방식은 안전합니다. 소프트웨어가 개인 키를 사용하기 전에 다른 사람이 홈 디렉토리를 수정할 수 없으며, .ssh 하위 디렉토리의 파일을 읽을 수 없도록 확인하기 때문입니다. 원격 서버에는 공개 키만 저장되므로, 설령 해당 서버가 해킹당하더라도 보안 문제가 발생하지 않습니다. 공개 키는 정의상 공개된 것이므로 누구나 읽을 수 있기 때문입니다. 개인 키는 항상 로컬 머신에 남아 있으며 네트워크를 통해 전송되지 않습니다. 이는 SSH2 프로토콜의 핵심 속성입니다. 이 프로토콜을 해독하는 데 필요한 컴퓨팅 능력은 현재 가능한 수준을 훨씬 뛰어넘습니다. 모든 패킷을 볼 수 있는 공격자에게도 이 프로토콜은 안전합니다.
따라서 sftp 명령어가 ftp의 완벽한 대체품이 아니라는 점을 걱정하지 마십시오. 사용 편의성이 개선된 동시에 향상된 보안 기능을 활용하세요. 정적 비밀번호를 없애고 공개/개인 키로 전환하십시오.
