배워갈 내용
- 개요
- 실습 1 신규 키 생성
- 실습 2 기존 키 활용
- 추가 팁
개요
SSH(Secure Shell)는 원격 서버에 안전하게 접속하기 위한 필수 도구입니다. 하지만 단순 비밀번호 방식은 보안 취약점이 많아, RSA 키 기반 인증을 사용하는 것이 안전합니다. 이 글에서는 Ubuntu에서 RSA 키를 생성하고, PuTTY에서 활용하는 방법을 자세히 설명하겠습니다.
실습 1 키 생성
1-1
RSA로 진행하셔도 되고 Ed25519으로 진행하셔도 됩니다.
Ed25519는 보안성이 뛰어나며, 성능이 우수한 최신 SSH 키 알고리즘입니다.
터미널에서 다음 명령어를 실행
ssh-keygen -t ed25519 -C "250227 by codemasterkimc"
다음과 같이 질문들이 나오는데 Enter를 치셔도 되고 입력하셔도 됩니다
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
1-2
SSH 키 파일 확인
ls ~/.ssh/
아래와 같이 나옵니다
id_ed25519 개인키
id_ed25519.pub 퍼블릭키
1-3
키 내용 확인
cat ~/.ssh/id_ed25519.pub
id_ed25519 또는 id_rsa (개인 키)는 절대 공개하면 안 됩니다!
공개 키(id_ed25519.pub 또는 id_rsa.pub)만 서버에 업로드합니다.
1-4
VM 공급자 웹사이트에 SSH 키 추가
AWS, Azure, GCP, Linode, DigitalOcean 등의 클라우드 VM 제공 업체의 웹 콘솔에서 Add SSH Key 항목을 찾습니다.
id_ed25519.pub 파일의 내용을 복사하여 붙여 넣습니다.
1-5
SSH 공개 키를 서버에 등록 (수동 설정)
서버에서 SSH 인증을 위해 authorized_keys 파일에 공개 키를 추가해야 합니다.
서버에 로그인한 후, authorized_keys에 직접 추가:
mkdir -p ~/.ssh
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 600 → 파일 권한을 보호하여 보안 강화
등록된 키 확인
cat ~/.ssh/authorized_keys
1-6
Windows PuTTY에서 SSH 키 활용
Windows에서 SSH를 사용하려면 PuTTY와 PuTTYgen을 활용해. ppk 파일을 만들어야 합니다.
putty 설치 후에
PuTTYgen 실행 (Windows에서 puttygen.exe 실행)
Load → id_ed25519 또는 id_rsa 파일 선택
"Save private key" 클릭하여 .ppk 파일로 저장
PuTTY 실행 → Connection → SSH → Auth에서. ppk 파일 선택
Superuser 설명
https://superuser.com/questions/912304/how-do-you-convert-an-ssh-private-key-to-a-ppk-on-the-windows-command-line
How do you convert an SSH private key to a .ppk on the Windows command line?
I have generated a key pair with ssh-keygen. I now want to use the same key pair with PuTTY-based applications. Because I'm working in a CLI environment, I want to convert the key to the .ppk format
superuser.com
1-7
SSH 보안 강화 – 비밀번호 로그인 차단
SSH 키를 설정한 후, 비밀번호 로그인 방식을 차단하면 보안이 더욱 강화됩니다.
서버에서 SSH 설정을 변경합니다.
sudo nano /etc/ssh/ssh_config
다음 항목을 추가하거나, 주석(#)이 있으면 제거합니다.
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitRootLogin no
1-8
SSH 서비스 재시작
sudo systemctl restart ssh
1-9 로그인
이제 로그인이 가능합니다~


실습 2 기존 ppk 활용
필요시 기존 .ppk 파일을 사용해서 공개키 추출 후 사용도 가능합니다
2-1
윈도우 에서 Puttygen을 실행합니다

2-2
ppk 파일을 Load 합니다
2-3
공개 키 복사
Public key for pasting into OpenSSH authorized_keys file 섹션에서 시작하는 ssh-rsa 키를 복사
복사한 키를 pkey.pub 파일로 저장해서 Ubuntu로 옮기셔도 되고 복붙 해도 됩니다
2-4
공개 키를 Ubuntu 서버에 추가
콘솔에서 직접 추가
2-5
. ssh 디렉터리 생성 및 권한 설정
mkdir -p ~/.ssh
chmod 700 ~/.ssh
2-6
authorized_keys 파일 편집
nano ~/.ssh/authorized_keys
2-7
ssh-rsa로 시작하는 공개 키를 붙여 넣기(아까 2-3에서 복사함)
2-8
파일 권한 설정
chmod 600 ~/.ssh/authorized_keys
2-9
SSH 서버가 공개 키 인증을 허용하도록 설정해야 합니다.
SSH 설정 파일 편집
sudo nano /etc/ssh/sshd_config
다음 설정 확인 또는 추가
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
2-10
SSH 서비스 재시작
sudo systemctl restart ssh
2-11
Putty로 로그인합니다
추가 팁
1. UFW 방화벽 설정
2. Fail2Ban 설치
3. SSH 포트 변경
결론
Ubuntu에서 Ed25519/RSA 키를 생성하고 서버에 등록을 하고
비밀번호 로그인 설정을 제거함으로써 보안을 강화했습니다
'DevOps > Linux' 카테고리의 다른 글
Putty 에 Pageant로 proxmox 내에 사설망 접근해보기 (0) | 2025.03.03 |
---|---|
PROXMOX 기본 보안설정: 방화벽 설정 (0) | 2025.02.28 |
SFTP를 사용해서 파일을 올리고 다운받는 방법에 대해서 알아보겠습니다 (0) | 2023.11.03 |
Ubuntu 22.04 LTS (Jammy Jellyfish) Postgresql 16으로 버전업 하기 (0) | 2023.09.23 |
우분투에서 PostgreSQL 설치하기: 초간단 레시피 (0) | 2023.09.09 |

배워갈 내용
- 개요
- 실습 1 신규 키 생성
- 실습 2 기존 키 활용
- 추가 팁
개요
SSH(Secure Shell)는 원격 서버에 안전하게 접속하기 위한 필수 도구입니다. 하지만 단순 비밀번호 방식은 보안 취약점이 많아, RSA 키 기반 인증을 사용하는 것이 안전합니다. 이 글에서는 Ubuntu에서 RSA 키를 생성하고, PuTTY에서 활용하는 방법을 자세히 설명하겠습니다.
실습 1 키 생성
1-1
RSA로 진행하셔도 되고 Ed25519으로 진행하셔도 됩니다.
Ed25519는 보안성이 뛰어나며, 성능이 우수한 최신 SSH 키 알고리즘입니다.
터미널에서 다음 명령어를 실행
ssh-keygen -t ed25519 -C "250227 by codemasterkimc"
다음과 같이 질문들이 나오는데 Enter를 치셔도 되고 입력하셔도 됩니다
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
1-2
SSH 키 파일 확인
ls ~/.ssh/
아래와 같이 나옵니다
id_ed25519 개인키
id_ed25519.pub 퍼블릭키
1-3
키 내용 확인
cat ~/.ssh/id_ed25519.pub
id_ed25519 또는 id_rsa (개인 키)는 절대 공개하면 안 됩니다!
공개 키(id_ed25519.pub 또는 id_rsa.pub)만 서버에 업로드합니다.
1-4
VM 공급자 웹사이트에 SSH 키 추가
AWS, Azure, GCP, Linode, DigitalOcean 등의 클라우드 VM 제공 업체의 웹 콘솔에서 Add SSH Key 항목을 찾습니다.
id_ed25519.pub 파일의 내용을 복사하여 붙여 넣습니다.
1-5
SSH 공개 키를 서버에 등록 (수동 설정)
서버에서 SSH 인증을 위해 authorized_keys 파일에 공개 키를 추가해야 합니다.
서버에 로그인한 후, authorized_keys에 직접 추가:
mkdir -p ~/.ssh
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 600 → 파일 권한을 보호하여 보안 강화
등록된 키 확인
cat ~/.ssh/authorized_keys
1-6
Windows PuTTY에서 SSH 키 활용
Windows에서 SSH를 사용하려면 PuTTY와 PuTTYgen을 활용해. ppk 파일을 만들어야 합니다.
putty 설치 후에
PuTTYgen 실행 (Windows에서 puttygen.exe 실행)
Load → id_ed25519 또는 id_rsa 파일 선택
"Save private key" 클릭하여 .ppk 파일로 저장
PuTTY 실행 → Connection → SSH → Auth에서. ppk 파일 선택
Superuser 설명
https://superuser.com/questions/912304/how-do-you-convert-an-ssh-private-key-to-a-ppk-on-the-windows-command-line
How do you convert an SSH private key to a .ppk on the Windows command line?
I have generated a key pair with ssh-keygen. I now want to use the same key pair with PuTTY-based applications. Because I'm working in a CLI environment, I want to convert the key to the .ppk format
superuser.com
1-7
SSH 보안 강화 – 비밀번호 로그인 차단
SSH 키를 설정한 후, 비밀번호 로그인 방식을 차단하면 보안이 더욱 강화됩니다.
서버에서 SSH 설정을 변경합니다.
sudo nano /etc/ssh/ssh_config
다음 항목을 추가하거나, 주석(#)이 있으면 제거합니다.
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitRootLogin no
1-8
SSH 서비스 재시작
sudo systemctl restart ssh
1-9 로그인
이제 로그인이 가능합니다~


실습 2 기존 ppk 활용
필요시 기존 .ppk 파일을 사용해서 공개키 추출 후 사용도 가능합니다
2-1
윈도우 에서 Puttygen을 실행합니다

2-2
ppk 파일을 Load 합니다
2-3
공개 키 복사
Public key for pasting into OpenSSH authorized_keys file 섹션에서 시작하는 ssh-rsa 키를 복사
복사한 키를 pkey.pub 파일로 저장해서 Ubuntu로 옮기셔도 되고 복붙 해도 됩니다
2-4
공개 키를 Ubuntu 서버에 추가
콘솔에서 직접 추가
2-5
. ssh 디렉터리 생성 및 권한 설정
mkdir -p ~/.ssh
chmod 700 ~/.ssh
2-6
authorized_keys 파일 편집
nano ~/.ssh/authorized_keys
2-7
ssh-rsa로 시작하는 공개 키를 붙여 넣기(아까 2-3에서 복사함)
2-8
파일 권한 설정
chmod 600 ~/.ssh/authorized_keys
2-9
SSH 서버가 공개 키 인증을 허용하도록 설정해야 합니다.
SSH 설정 파일 편집
sudo nano /etc/ssh/sshd_config
다음 설정 확인 또는 추가
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
2-10
SSH 서비스 재시작
sudo systemctl restart ssh
2-11
Putty로 로그인합니다
추가 팁
1. UFW 방화벽 설정
2. Fail2Ban 설치
3. SSH 포트 변경
결론
Ubuntu에서 Ed25519/RSA 키를 생성하고 서버에 등록을 하고
비밀번호 로그인 설정을 제거함으로써 보안을 강화했습니다
'DevOps > Linux' 카테고리의 다른 글
Putty 에 Pageant로 proxmox 내에 사설망 접근해보기 (0) | 2025.03.03 |
---|---|
PROXMOX 기본 보안설정: 방화벽 설정 (0) | 2025.02.28 |
SFTP를 사용해서 파일을 올리고 다운받는 방법에 대해서 알아보겠습니다 (0) | 2023.11.03 |
Ubuntu 22.04 LTS (Jammy Jellyfish) Postgresql 16으로 버전업 하기 (0) | 2023.09.23 |
우분투에서 PostgreSQL 설치하기: 초간단 레시피 (0) | 2023.09.09 |