SSH 인증키 접속 설정

시스템 환경

1. SSH 설치 확인

openssh-server 패키지가 설치되어 있는지 확인합니다.

# 1. 패키지 업데이트
@localhost ~]$ sudo dnf update -y

# 2. 설치 확인
@localhost ~]$ rpm -qa | grep openssh-server
# 결과 예시: openssh-server-8.7p1... 가 나오면 설치됨

# 2-1. 미설치 시 설치
@localhost ~]$ sudo dnf install openssh-server -y

2. SSH 서비스 활성화

# 1. 서비스 활성화 및 즉시 시작
@localhost ~]$ sudo systemctl enable --now sshd

# 2. 상태 확인 (Active: active(running) 확인)
@localhost ~]$ sudo systemctl status sshd

3. 방화벽 설정

# 1. 서비스 항목에 ssh 포함 여부 확인
@localhost ~]$ sudo firewall-cmd --list-all

# 1-1. 항목이 없을 경우 추가
@localhost ~]$ sudo firewall-cmd --permanent --add-service=ssh

# 2. 규칙 즉시 반영
@localhost ~]$ sudo firewall-cmd --reload

4. SSH 인증키 접속 준비

Rocky Linux 9부터는 보안 강화를 위해 root 계정의 비밀번호 접속이 기본적으로 금지됩니다.

Linux 서버 설정 변경

# 1. 디렉토리 생성 및 권한 설정
@localhost ~]$ chmod ~/.ssh
# .ssh 디렉토리 없는 경우 생성
@localhost ~]$ mkdir .ssh
@localhost ~]$ chmod ~/.ssh/authorized_keys
@localhost ~]$ restorecon -Rv ~/.ssh # SELinux 보안 컨텍스트(라벨)를 기본값으로 복구

# 2. /etc/ssh/sshd_config 파일 설정 변경
# 2-1. root 로그인
@localhost ~]$ su
# 2-2. sshd_config 파일 수정
@localhost ~]# vi /etc/ssh/sshd_config

# 수정 사항 (주석 해제 및 설정 확인):
# 45라인: PubkeyAuthentication yes
# 49라인: AuthorizedKeyFile .ssh/authorized_keys
# 65라인: PasswordAuthentication yes (키 등록 전까지 한시적 허용)
# 이후 esc -> :wq 하여 저장

5. Windows 클라이언트 설정 및 접속

Windows PowerShell에서 작업을 수행합니다.

# 1. SSH 키 생성
PS > ssh-keygen -t rsa -b 4096

# -t : 키 타입(RSA 암호화), -C : comment(생락가능), -b : 4096 비트 길이
# Enter file in which to save thse key (/root/.ssh/id_rsa) : 파일명 입력(공백 처리 가능 : Enter)
# Enter passphrase for */root/.ssh/id_rsa* (empty for no passphrase) : 암호 입력(공백 처리 가능 : Enter)
# Enter same passphrase again : 암호 재입력(공백 처리 가능 : Enter)

# 2. 생성된 공개키(.pub) 내용 클립보드 복사
PS > Get-Content $env:C:\Users\<사용자명>\.ssh\<키 이름>.pub | Set-Clipboard

# 3. 기존의 ssh 비밀번호 방식으로 ssh 접속해서 공개키 붙여넣기
# 3-1. ssh 접속
PS > ssh <User>@<ip주소>
# 3-2. 공개키 붙여넣기
@localhost ~]$ echo “키 내용” >> ~/.ssh/authorized_keys
@localhost ~]$ exit

# 4. /etc/ssh/sshd_config 파일 수정
# 4-1. root 로그인
@localhost ~]$ su
# 4-2. sshd_config 파일 수정
@localhost ~]# vi /etc/ssh/sshd_config
# PasswordAuthentication no 로 수정하여 비밀번호 방식 접속 차단

# 5. 서비스 재시작
@localhost ~]# sudo systemctl restart sshd

# 6. ssh 접속
PS > ssh <User>@<ip주소>
# 키 생성 시 암호를 입력했을 경우 암호 입력, 암호를 설정하지 않은 경우 바로 로그인