sshd config 파일 분석해보기

ssh 서버를 설정하기 위해 사용되는 sshd_config 파일의 예시 내용을 분석해보겠습니다.


#   $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $

#   sshd_config(5) - OpenSSH daemon configuration file


#   See sshd_config(5) for more information.


#   This file is read before starting up the sshd daemon.  It defines

#   the parameters for the server.



Port 22                             # SSH 접속에 사용할 포트 번호

AddressFamily any                   # IP 버전 선택 (IPv4, IPv6, 둘 다)

ListenAddress 0.0.0.0               # IP 주소 및 포트 바인딩 옵션

ListenAddress ::                    # IPv6 주소 및 포트 바인딩 옵션

HostKey /etc/ssh/ssh_host_rsa_key   # 호스트 RSA 개인키 파일 경로

HostKey /etc/ssh/ssh_host_ecdsa_key # 호스트 ECDSA 개인키 파일 경로

HostKey /etc/ssh/ssh_host_ed25519_key # 호스트 Ed25519 개인키 파일 경로

SyslogFacility AUTH                 # 로깅 시스템

LogLevel INFO                       # 로그 레벨

LoginGraceTime 2m                   # 로그인 대기 시간

PermitRootLogin no                  # Root 계정으로의 SSH 접속 허용 여부

StrictModes yes                     # 권한 모드 체크 여부

RSAAuthentication yes               # RSA 인증 사용 여부

PubkeyAuthentication yes            # 공개키 인증 사용 여부

AuthorizedKeysFile .ssh/authorized_keys # SSH 공개키 파일 경로

PasswordAuthentication yes          # 패스워드 인증 사용 여부

PermitEmptyPasswords no             # 빈 패스워드 허용 여부

ChallengeResponseAuthentication no  # Challenge-Response 인증 사용 여부

X11Forwarding yes                   # X11 포워딩 사용 여부

PrintMotd no                        # 로그인 메시지 출력 여부

AcceptEnv LANG LC_*                 # 환경 변수 관련 설정

Subsystem sftp /usr/lib/openssh/sftp-server # SFTP 서브시스템 경로

UsePAM yes                          # PAM 모듈 사용 여부



위 sshd_config 예시에서는 주석(#으로 시작하는 줄)과 함께 다양한 옵션이 포함되어 있습니다. 각각의 옵션은 다음과 같은 용도를 가집니다.


•   Port: sshd가 바인딩할 포트 번호를 지정합니다.

•   AddressFamily: IPv4, IPv6 중 어떤 IP 버전을 사용할지 선택합니다.

•   ListenAddress: sshd가 연결을 기다리는 IP 주소와 포트 번호를 지정합니다.

•   HostKey: 호스트 인증에 사용되는 RSA, ECDSA, Ed25519 등의 개인키 파일 경로를 지정합니다.

•   SyslogFacility: 로깅 시스템을 지정합니다.

•   LogLevel: 로그 레벨을 설정합니다.

•   LoginGraceTime: SSH 접속이 가능한 대기 시간을 지정합니다.

•   PermitRootLogin: root 계정으로 ssh 접속을 허용할지 여부를 지정합니다. (no로 설정되어 있음)

•   StrictModes: 권한 모드 체크 여부를 설정합니다.

•   RSAAuthentication: RSA 인증 사용 여부를 지정합니다.

•   PubkeyAuthentication: 공개키 인증 사용 여부를 지정합니다.

•   AuthorizedKeysFile: SSH 공개키 파일 경로를 지정합니다.

•   PasswordAuthentication: 패스워드 인증 사용 여부를 지정합니다.

•   PermitEmptyPasswords: 빈 패스워드 허용 여부를 지정합니다.

•   ChallengeResponseAuthentication: Challenge-Response 인증 사용 여부를 지정합니다.

•   X11Forwarding: X11 포워딩 사용 여부를 지정합니다.

•   PrintMotd: 로그인 메시지 출력 여부

•   X11Forwarding: X11 포워딩 사용 여부를 지정합니다.

•   PrintMotd: 로그인 메시지 출력 여부를 지정합니다.

•   AcceptEnv: 클라이언트에서 ssh를 실행할 때 전송되는 환경 변수 이름을 지정합니다. LANG 및 LC_*와 같은 몇 가지 환경 변수는 SSH 세션에서 유효합니다.

•   Subsystem: sftp 서비스를 제공하는 SFTP 서브 시스템 경로를 지정합니다.

•   UsePAM: PAM 모듈 사용 여부를 지정합니다. (yes로 설정되어 있음)


위 정보들은 sshd_config 파일에서 sshd daemon의 동작과 관련된 주요 설정 항목들입니다. 이러한 설정 값을 수정하여 SSH 서버의 동작을 변경할 수 있습니다.