SSH Key 개인키 공개키 생성하기

SSH, 즉 Secure Shell은 컴퓨터 네트워크 상에서 데이터를 안전하게 이동시키고, 사용자가 원격으로 다른 시스템에 접근할 수 있도록 도와주는 프로토콜이며, 이를 구현한 프로그램을 일컫는 용어입니다. 이 도구는 사용자가 원격에 위치한 서버에 안전하게 접속하여 필요한 작업을 처리하는 데 필수적입니다. SSH 더 알아보기

이런 SSH에 로그인하는 방법에는 크게 두 가지가 있습니다. 하나는 사용자가 직접 비밀번호를 입력하여 인증하는 방법, 다른 하나는 특정 인증 키를 활용하는 방법입니다. 이때 후자에서 사용되는 것이 바로 SSH 키입니다. SSH 키는 암호화된 키 쌍인 개인키와 공개키로 이루어져 있습니다. 개인키는 사용자만이 가지고 있어야 하며, 이는 절대로 노출되어서는 안 됩니다. 공개키는 반대로 원격 서버에 등록되며, 사용자가 서버에 접속할 때 이 키를 통해 사용자의 신원을 인증합니다. SSH키 더 알아보기

일부 클라우드 서비스 제공자는 서버 생성 시 자동으로 SSH 키 쌍을 생성하고 제공하는 기능을 제공합니다. 이렇게 제공된 키 쌍은 서버에 접속하는 데 바로 사용할 수 있습니다. 하지만 이런 방식은 키의 유형이가 길이, 암호화 알고리즘 등을 사용자가 원하는 대로 설정하기가 어렵고 키의 보안을 강화하기 위해 추가 비밀번호를 설정할 수도 없기 때문에 일부 사용자는 다음과 같은 방식으로 자신이 직접 키 쌍을 생성하고 관리할 수 있습니다. 운영체제와 SSH 클라이언트 도구에 따라 명령어나 설정 방법이 다를 수 있습니다. 이는 각 도구의 문서를 참고하거나 운영체제에 맞는 방법을 검색하여 확인할 수 있지만 기본적인 과정은 다음과 같습니다.

아래 설명은 comeinsidebox.com 에서 테스트 및 검증 후 작성 된 내용이지만 이것이 본문의 내용의 정확성이나 신뢰성에 대해 보증을 하는 것은 아니니 단순 하게 참고용으로 확인바랍니다.

튜토리얼 환경: 윈도우 11 Pro, Ubuntu Server 22.04

Linux 및 macOS에서 SSH Key 생성하기

Linux 또는 macOS 환경에서는 터미널을 통해 SSH 키를 생성할 수 있습니다. 터미널은 컴퓨터의 명령어를 직접 입력하여 실행할 수 있는 도구로, 여기에서는 이를 이용하여 SSH 키를 생성하는 방법을 알아보겠습니다. Shell과 Terminal 더 알아보기

참고: macOS과 Linux에서 SSH Key를 생성하는 기본적인 방식은 유사하지만 macOS를 기준으로 안내합니다.
Ubuntu-서버에서-ssh-key-생성
Ubuntu 서버에서 ssh key 생성

Linux Shell에 접속하거나 macOS에서 터미널을 실행하고 다음 명령을 작성한 뒤 Enter 키로 실행합니다. 이 명령어는 RSA 암호화 방식을 이용하여 4096비트의 SSH 키를 생성하는 명령어입니다. RSA는 비대칭키 암호화 방식 중 하나로, 공개키와 개인키 두 개의 키를 생성하여 사용합니다. 이를 통해 원격 서버에 안전하게 접속할 수 있습니다.

ssh-keygen -t rsa -b 4096
  • RSA: RSA는 공개키 암호화 방식 중 하나로, 두 개의 큰 소수를 이용해 공개키와 개인키를 생성합니다. RSA는 이 두 키가 서로 어떤 관계에 있는지를 알아내기 어렵다는 점에서 보안성을 보장합니다. SSH 키를 생성할 때 가장 널리 사용되는 암호화 방식 중 하나입니다.
  • 비트: 비트는 생성하는 키의 길이를 나타냅니다. 길이가 길수록 보안성이 높지만, 컴퓨팅 리소스가 더 필요합니다. 일반적으로 2048비트, 3072비트, 4096비트가 사용되며, 대부분의 경우 2048비트를 추천합니다. 하지만 보안성이 더 필요한 경우, 4096비트를 사용하기도 합니다. SSH 키를 생성할 때 -b 옵션을 지정하지 않으면 기본값으로 키의 길이가 설정됩니다. RSA 암호화 방식에서는 이 기본값이 2048비트입니다.

명령어를 실행하면, 키를 저장할 경로를 묻는 메시지가 나타납니다. 그대로 엔터키를 눌러 기본 경로에 키를 저장하거나, 원하는 경로를 입력할 수 있습니다. 그 다음, 키를 보호할 비밀번호를 두 번 입력하라는 메시지가 나타납니다. 비밀번호를 설정하려면 원하는 비밀번호를 입력하고, 비밀번호 없이 키를 생성하려면 그냥 엔터키를 누르면 됩니다.

키-생성-완료
키 생성 완료

위의 과정을 완료하면, 지정한 경로에 SSH 키가 생성됩니다. id_rsa라는 이름의 파일이 개인키이며, id_rsa.pub라는 이름의 파일이 공개키입니다.

macOS 맥의 터미널에서 기본 Shell을 변경하는 방법

Windows에서 SSH Key 생성하기

Windows 환경에서는 명령 프롬프트PowerShell 또는 PuTTY와 같은 SSH 클라이언트를 이용하여 SSH 키를 생성할 수 있습니다. 여기에서는 Windows PowerShell과 PuTTY를 이용한 방법을 각각 안내합니다.

터미널

Windows의 명령 프롬프트나 PowerShell을 이용하여 SSH 키를 생성하는 방법은 Linux나 macOS에서 터미널을 이용하는 방법과 크게 다르지 않습니다. 본문에서는 PowerShell을 이용해서 진행합니다.

SSH키-생성
SSH키 생성

PowerShell을 실행하고 다음 명령을 작성한 뒤 Enter 키로 실행합니다. 이 명령어는 RSA 암호화 방식을 이용한 SSH 키를 생성하는 명령어입니다. 다음과 같이 -b 옵션을 지정하지 않으면 기본인 2048비트 키의 길이가 설정됩니다.

ssh-keygen -t rsa

명령어를 실행하면, 키를 저장할 경로를 묻는 메시지가 나타납니다. 그대로 엔터키를 눌러 기본 경로에 키를 저장하거나, 원하는 경로를 입력할 수 있습니다.

비밀번호-지정-후-생성-완료
비밀번호 지정 후 생성 완료

그 다음, 키를 보호할 비밀번호를 두 번 입력하라는 메시지가 나타납니다. 비밀번호를 설정하려면 원하는 비밀번호를 입력하고, 비밀번호 없이 키를 생성하려면 그냥 엔터키를 누르면 됩니다.

SSH-키-생성-완료
SSH 키 생성 완료

위의 과정을 완료하면, 지정한 경로에 SSH 키가 생성됩니다. id_rsa라는 이름의 파일이 개인키이며, id_rsa.pub라는 이름의 파일이 공개키입니다.

macOS 맥북 사용 중인 OS 버전 확인하는 방법들

PuTTY

PuTTY는 Windows 환경에서 가장 널리 사용되는 SSH 클라이언트 중 하나입니다. PuTTY에는 PuTTY Key Generator라는 도구가 포함되어 있어, 이를 이용하면 간편하게 SSH 키를 생성할 수 있습니다.

참고: PuTTY Key Generator는 PuTTY를 설치하면 자동으로 설치되는 도구입니다. PuTTY 설치 방법은 Windows에서 PuTTY 설치하는 방법 문서를 확인하세요.

PuTTY Key Generator를 실행 후 아래 과정을 통해 SSH 키를 생성할 수 있습니다.

  1. PuTTY와 같이 설치되는 프로그램 목록에 puttygen이라는 이름의 PuTTY Key Generator를 실행합니다.
  2. Generate 버튼을 클릭하면, SSH 키 생성이 시작됩니다. 이 과정에서 마우스를 무작위로 움직여서 랜덤성을 증가시킬 수 있습니다.
  3. 키가 성공적으로 생성되면, Public key for pasting into OpenSSH authorized_keys file란에 공개키가 표시됩니다. 이 키를 복사하여 원격 서버의 ~/.ssh/authorized_keys 파일에 붙여넣으면 됩니다.
  4. Save public keySave private key 버튼을 클릭하여 공개키와 개인키를 안전한 위치에 저장합니다. 이 때, 개인키는 절대 외부에 노출되어서는 안 되므로 안전하게 보관해야 합니다.
  5. 이제 생성한 개인키를 PuTTY SSH 클라이언트에 등록하면, 해당 키를 이용하여 원격 서버에 접속할 수 있습니다. 자세한 내용은 Putty Key Generator 로 SSH Key, ppk 생성하는 방법 문서를 확인하세요.

관련 글

댓글로 남기기 어려운 내용은 Contact Form 에서 개별적으로 문의 할 수 있습니다. 해당 글과 연관 된 내용은 Copy를 이용해 현재 페이지의 주소를 복사 후 문의 폼에 입력시 보다 정확한 답을 얻을 수 있습니다.

Leave a Comment