1장. OpenSSH로 두 시스템 간의 보안 통신 사용

SSH(Secure Shell)는 클라이언트-서버 아키텍처를 사용하여 두 시스템 간에 보안 통신을 제공하고 사용자가 서버 호스트 시스템에 원격으로 로그인할 수 있는 프로토콜입니다. FTP 또는 Telnet과 같은 다른 원격 통신 프로토콜과 달리 SSH는 로그인 세션을 암호화하여 침입자가 연결에서 암호화되지 않은 암호를 수집하지 못하게 합니다.

Red Hat Enterprise Linux에는 일반 openssh 패키지, openssh-server 패키지, openssh-clients 패키지 등 기본 OpenSSH 패키지가 포함되어 있습니다. OpenSSH 패키지에는 OpenSSH가 암호화된 통신을 제공할 수 있는 몇 가지 중요한 암호화 라이브러리를 설치하는 OpenSSL 패키지 openssl-libs가 있어야 합니다.

1.1. SSH 및 OpenSSH

SSH(Secure Shell)는 원격 시스템에 로그인하고 해당 시스템에서 명령을 실행하는 프로그램입니다. SSH 프로토콜은 비보안 네트워크를 통해 신뢰할 수 없는 두 호스트 간에 안전한 암호화된 통신을 제공합니다. 보안 채널을 통해 X11 연결 및 임의의 TCP/IP 포트를 전달할 수도 있습니다.

SSH 프로토콜은 원격 쉘 로그인 또는 파일 복사에 사용할 때 두 시스템 간 통신 가로채기 및 특정 호스트의 가장과 같은 보안 위협을 완화합니다. 이는 SSH 클라이언트와 서버가 디지털 서명을 사용하여 신원을 확인하기 때문입니다. 또한 클라이언트와 서버 시스템 간의 모든 통신이 암호화됩니다.

호스트 키는 SSH 프로토콜에서 호스트를 인증합니다. 호스트 키는 OpenSSH가 처음 설치될 때 또는 호스트가 처음 부팅될 때 자동으로 생성되는 암호화 키입니다.

OpenSSH는 Linux, UNIX 및 유사한 운영 체제에서 지원하는 SSH 프로토콜 구현입니다. OpenSSH 클라이언트와 서버 모두에 필요한 코어 파일을 포함합니다. OpenSSH 제품군은 다음 사용자 공간 툴로 구성됩니다.

  • SSH 는 원격 로그인 프로그램(SSH 클라이언트)입니다.
  • sshd 는 OpenSSH SSH 데몬입니다.
  • SCP 는 안전한 파일 복사 프로그램입니다.
  • SFTP 는 안전한 파일 전송 프로그램입니다.
  • SSH-agent 는 개인 키를 캐싱하기 위한 인증 에이전트입니다.
  • ssh-addssh-agent 에 개인 키 ID를 추가합니다.
  • SSH-keygen은 ssh 에 대한 인증 키를 생성, 관리 및 변환합니다.
  • ssh-copy-id 는 원격 SSH 서버의 authorized_keys 파일에 로컬 공개 키를 추가하는 스크립트입니다.
  • SSH-keyscan 은 SSH 공개 호스트 키를 수집합니다.
참고

RHEL 9에서는 기본적으로 SFTP(Secure File Transfer Protocol)가 SSH 파일 전송 프로토콜(SCP)으로 교체됩니다. 이는 SCP가 이미 보안 문제를 발생했기 때문입니다(예: CVE-2020-15778).

사용자의 시나리오에서 SFTP를 사용할 수 없거나 호환되지 않는 경우 -O 옵션을 사용하여 원래 SCP/RCP 프로토콜을 강제로 사용할 수 있습니다.

자세한 내용은 Red Hat Enterprise Linux 9에서 OpenSSH SCP 프로토콜 사용 중단 문서를 참조하십시오.

SSH에는 현재 버전 1과 최신 버전 2의 두 가지 버전이 있습니다. RHEL의 OpenSSH 제품군은 SSH 버전 2만 지원합니다. 버전 1에서 알려진 악용에 취약하지 않은 향상된 key-exchange 알고리즘을 가지고 있습니다.

OpenSSH는 RHEL의 핵심 암호화 하위 시스템 중 하나로 시스템 전체 암호화 정책을 사용합니다. 이렇게 하면 기본 구성에서 약한 암호 제품군 및 암호화 알고리즘이 비활성화됩니다. 정책을 수정하려면 관리자는 update-crypto-policies 명령을 사용하여 설정을 조정하거나 시스템 전체 암호화 정책을 수동으로 비활성화해야 합니다.

OpenSSH 제품군은 클라이언트 프로그램(즉, ssh,scp, sftp)과 서버( sshd 데몬)에 대한 두 가지 구성 파일 세트를 사용합니다.

시스템 전체 SSH 구성 정보는 /etc/ssh/ 디렉토리에 저장됩니다. 사용자별 SSH 구성 정보는 사용자 홈 디렉터리의 ~/.ssh/에 저장됩니다. OpenSSH 구성 파일의 자세한 목록은 sshd(8) 도움말 페이지의 FILES 섹션을 참조하십시오.

추가 리소스