Home Knowledge base Skyline Cloud Ubuntu 22.04/24.04에서 SSH 키 인증 설정하는 방법 KNOWLEDGE BASE

Ubuntu 22.04/24.04에서 SSH 키 인증 설정하는 방법

SSH 키 쌍을 생성하고 서버에 설치한 뒤 비밀번호 로그인을 비활성화하여, Skyline Cloud VPS에서 더 강력하고 비밀번호 없는 보안을 구현하는 정확한 단계별 가이드입니다.

Ubuntu 22.04/24.04에서 SSH 키 인증 설정하는 방법

SSH 키 쌍을 생성하고, 서버에 설치한 뒤, 비밀번호 로그인을 비활성화하여 Skyline Cloud VPS에서 더 강력하고 비밀번호 없는 보안을 구현하는 정확한 단계별 가이드입니다.

SSH 키 인증이란

SSH 키 인증은 서버에 접속할 때 입력하던 비밀번호를 암호화된 키 쌍(key pair) 으로 대체합니다. 즉, 사용자의 컴퓨터에 보관되는 개인 키(private key) 와 서버에 배치하는 공개 키(public key) 로 구성됩니다. 접속 시, 비밀 정보를 네트워크로 전송하지 않고도 두 키가 수학적으로 일치하는지 확인합니다. 이 방식은 (입력할 비밀번호가 없어) 더 편리할 뿐만 아니라, 추측하거나 무차별 대입으로 뚫릴 수 있는 비밀번호보다 훨씬 안전합니다.

이것은 Skyline Cloud VPS 또는 클라우드 서버를 시작한 후 가장 먼저 해야 할 일입니다. 아래 단계는 Ubuntu 22.04 LTS 및 24.04 LTS 를 대상으로 하지만, 약간의 변경만으로 거의 모든 Linux 서버에 적용할 수 있습니다.

사전 준비 사항

  • sudo 권한을 가진 사용자로 이미 SSH를 통해 접속할 수 있는 서버. 새로 만든 Skyline Cloud VPS에서는 보통 root 이거나 프로비저닝 시 생성한 사용자입니다.
  • 사용자 본인 컴퓨터의 터미널: macOS 또는 Linux의 터미널 앱, 또는 Windows 10/11의 PowerShell / Windows Terminal(OpenSSH가 기본 내장되어 있습니다).

1단계 — 로컬 컴퓨터에서 키 쌍 생성하기

서버가 아니라 사용자 본인 컴퓨터에서 다음을 실행하세요:

ssh-keygen -t ed25519 -C "you@example.com"

-t ed25519 를 사용하는 이유는 Ed25519 키가 최신 방식이며 빠르고, 짧은 키로도 안전하기 때문입니다. -C 플래그는 단지 나중에 키를 식별할 수 있도록 주석(사용자 이메일)을 추가할 뿐입니다. Ed25519를 지원하지 않는 오래된 시스템을 지원해야 한다면, 대신 강력한 RSA 키를 사용하세요:

ssh-keygen -t rsa -b 4096 -C "you@example.com"

Enter 를 눌러 기본 파일 위치(~/.ssh/id_ed25519)를 수락합니다. 패스프레이즈를 입력하라는 메시지가 나오면 강력한 패스프레이즈를 설정하세요. 패스프레이즈는 디스크에 저장된 개인 키를 암호화하므로, 노트북을 도난당하더라도 서버 접근 권한이 넘어가지 않습니다. 에이전트를 사용하는 경우(5단계) 세션당 한 번만 입력하면 됩니다.

이 과정으로 두 개의 파일이 생성됩니다:

파일 역할 공유해도 되나요?
~/.ssh/id_ed25519 개인 키 절대 공유하지 마세요
~/.ssh/id_ed25519.pub 공개 키 서버에 복사해도 안전합니다

2단계 — 공개 키를 서버에 복사하기

가장 쉬운 방법은 ssh-copy-id 입니다. 이 명령은 사용자의 공개 키를 서버의 ~/.ssh/authorized_keys 에 추가하고 권한도 자동으로 설정해 줍니다:

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@your_server_ip

이때 비밀번호를 마지막으로 한 번 입력하라는 요청을 받게 됩니다. user 는 서버 사용자명(예: root 또는 ubuntu)으로, your_server_ip 는 VPS IP 주소로 바꾸세요.

ssh-copy-id를 사용할 수 없는 경우

Windows에서 사용하거나 해당 도구가 없는 경우, 키를 수동으로 설치합니다. 공개 키를 화면에 표시합니다:

cat ~/.ssh/id_ed25519.pub

출력된 한 줄을 복사한 다음, 비밀번호로 서버에 로그인하여 다음을 실행하세요:

mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ssh-ed25519 AAAA... you@example.com" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

예시 대신 본인의 키 줄을 붙여넣으세요. 올바른 권한 설정이 중요합니다. 파일이나 ~/.ssh 디렉터리의 권한이 너무 개방되어 있으면 SSH는 authorized_keys무시합니다.

3단계 — 키 로그인 테스트하기

터미널을 열고 접속합니다:

ssh user@your_server_ip

패스프레이즈를 설정했다면, (서버 비밀번호가 아니라) 패스프레이즈 입력을 요청합니다. 그러면 서버의 명령 프롬프트에 도달하게 됩니다. 실수로 인해 접속이 차단되는 일이 없도록, 다음 단계를 진행하는 동안 이 세션은 열어 두세요.

4단계 — 비밀번호 인증 비활성화하기

키 로그인이 작동하면 비밀번호를 끄세요. 그러면 무차별 대입 시도가 무의미해집니다. 서버에서 SSH 데몬 설정 파일을 편집합니다:

sudo nano /etc/ssh/sshd_config

다음 줄을 찾아 설정하세요(앞에 붙은 # 가 있으면 제거):

PasswordAuthentication no
PubkeyAuthentication yes

Ubuntu 22.04/24.04에서는 드롭인 디렉터리 /etc/ssh/sshd_config.d/ 도 확인하세요. 이 디렉터리의 파일(예: 50-cloud-init.conf)이 메인 파일을 덮어쓸 수 있습니다. 어떤 파일도 PasswordAuthentication yes 로 설정하지 않았는지 확인하세요:

sudo grep -r PasswordAuthentication /etc/ssh/sshd_config /etc/ssh/sshd_config.d/

그런 다음 설정을 검증하고 서비스를 다시 로드합니다:

sudo sshd -t
sudo systemctl restart ssh

Ubuntu에서 서비스 이름은 ssh(ssh.service)입니다. restart ssh 가 해당 유닛이 없다고 보고하면 sudo systemctl restart sshd 를 사용하세요.

이제 또 다른 새 터미널 을 열어 키로 여전히 로그인할 수 있는지 확인하세요. 새 세션이 성공한 후에만 원래 세션을 닫으세요.

5단계 — SSH 에이전트 사용하기 (선택 사항이지만 권장)

접속할 때마다 패스프레이즈를 다시 입력하지 않으려면, 세션당 한 번 키를 에이전트에 로드하세요:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

macOS에서는 재부팅 후에도 유지되도록 키체인에 저장하세요:

ssh-add --apple-use-keychain ~/.ssh/id_ed25519

6단계 — 깔끔한 SSH 설정 (선택 사항)

로컬 컴퓨터의 ~/.ssh/config 에 항목을 추가하면 짧은 별칭으로 접속할 수 있습니다:

Host skyline-vps
    HostName your_server_ip
    User ubuntu
    IdentityFile ~/.ssh/id_ed25519

이제 ssh skyline-vps 만 입력하면 됩니다.

문제 해결

  • 2단계 이후에도 여전히 비밀번호를 묻습니다. 권한이 잘못되었습니다. 서버에서 chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys 를 실행하고, 파일 소유자가 본인 사용자인지 확인하세요.
  • Permission denied (publickey). 서버가 사용자의 키를 제시하지 않거나, 키를 잘못된 사용자의 홈 디렉터리에 복사한 것입니다. -v 를 추가하면 SSH가 무엇을 시도하는지 볼 수 있습니다: ssh -v user@your_server_ip.
  • 비밀번호 비활성화 후 접속이 차단되었습니다. 제공업체의 콘솔(제어판의 웹 기반 VNC/시리얼 콘솔)을 사용해 로그인한 뒤 PasswordAuthentication 을 일시적으로 다시 활성화하세요.

관리형 인-킹덤(in-Kingdom) VPS에서 운영하기

SSH 키는 연결을 보호하지만, 서버 자체에는 여전히 패치, 백업, 모니터링이 필요합니다. Skyline Cloud VPS 또는 클라우드 서버에서는 PDPL, NCA, SDAIA 데이터 거주 요건을 위해 사우디아라비아 국내 에 호스팅된 하드웨어, 현지 아랍어 지원, 그리고 OS 강화와 클라우드 백업을 대신 처리해 주는 관리형 옵션을 이용할 수 있습니다. 같은 인-킹덤 플랫폼의 비즈니스 이메일 호스팅과 함께 사용하면 전체 스택이 규정을 준수하게 됩니다.

몇 분 만에 안전한 서버를 배포할 준비가 되셨나요? Skyline Cloud 계정을 생성하고 오늘 VPS를 시작하세요.

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Skyline Cloud for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.