본문 바로가기
목차
utils/git and github

[ssh-keygen] ssh 정의 및 private key와 public key 생성하기.

by ds31x 2023. 12. 27.
728x90
반응형

ssh (secure shell)

ssh는 secure shell의 약자로 네트워크 상에서 암호화된 통신을 위한 프로토콜 (및 이를 구현한 프로그램)을 가르킴.

 

주로 원격지의 장비에 보안이 보장된 접속을 제공하며 이를 위해 암호화 및 Authentication(인증)을 사용함.

 

이를 위해 ssh는

  • password 기반의 인증과
  • private and public key 기반의 인증 (Public-key cryptography),
  • time based 인증 등의 다양한 방법을 제공한다.

과거에는 간단한 password 기반의 인증이 가장 많이 사용되었으나,

최근에는 주로 private key와 public key를 이용한 방식이 사용됨.

https://blakesmith.me/2010/02/08/understanding-public-key-private-key-concepts.html

 

2025.08.05 - [utils] - ssh (Secure SHell) 사용 방법

 

ssh (Secure SHell) 사용 방법

SSH 는 Secure SHell의 약자로 암호화된 보안 연결을 통해 원격 서버에 안전하게 접속하고 명령을 실행할 수 있게 해주는 네트워크 프로토콜을 가리킴. (이를 사용하는 클라이언트 및 앱을 가리키기

ds31x.tistory.com


ssh-keygen

비슷한 암호학적 원리를 사용하는 도구로 GPG (GNU Privacy Guard) 가 있음.

ssh-keygen은 ssh authentication을 위한 키 생성 용도에 특화된 단순한 키 생성 도구임.

GPG는 공개키 암호방식을 통해 데이터와 메시지를 보호하기 위한 범용 암호 도구라고 볼 수 있음.

 

GPG 관련된 자세한 건 다음을 참고:

 

ssh-keygen은 ssh에서 사용되는 private key와 public key를 생성 및 관리, 편집 하는 프로그램임.

 

이를 통해 ssh에서 사용할 private key와 public key를 생성할 수 있음.

  • private key :
    • 사용자의 장비에 저장되며, 이 key를 이용하여 자신을 인증함.
  • public key :
    • 대응되는 private key가 있는 public key는 사용자의 인증이 필요한 원격지의 서버에 저장됨.
    • 해당 public key를 통해 대응되는 private key를 가진 사용자인지를 확인할 수 있고, 보안을 위한 접속등에서 요구되는 암호화등에서 사용되게 됨.

키의 알고리즘 종류는 다음을 참고:

 

Linux나 macOS에선 기본적으로 설치되어있으나,

Windows의 경우 가끔 안되어 있는 경우도 있음.

아래에서 "Windows에서 OpenSSH 설치여부 확인 및 설치" 절을 확인할 것.


사용법.

기존 ssh 키 확인하기

현재 장비에서 ssh 를 위한 key가 있는 지를 다음을 통해 확인 가능함.

ls -al ~/.ssh
# dir %userprofile%\.ssh #for windows
  • 자신의 home directory를 의미하는 ~ 밑에 .ssh 라는 이름의 directory에 일반적으로 ssh 를 위한 key파일들이 위치함.

이미 private key 와 public key를 가진 경우 다음의 이름들의 파일을 확인할 수 있음.

id_rsa.pub
id_ecdsa.pub
id_ed25519.pub
  • extension이 .pub 가 있으면 public key파일이며, 같은 이름이면서 extension이 없으면 private key임.
  • 위의 이름들의 차이는 키를 생성한 암호 알고리즘에 따라 차이가 난다.
  • 가장 안전한 최신의 알고리즘으로 ed25519를 사용하는 것을 권하는 경우가 많으나, 아직까지 rsa도 많이 사용된다.

ssh 키 생성하기

ssh 키가 없다면, ssh-keygen을 통해 생성한다.

ssh-keygen -t rsa -C "사용할email주소"
# ssh-keygen -t ed25519 -C "your_email@test.ac.kr"
  • -t : 키를 생성할 때 사용할 암호 알고리즘을 지정함. 여기선 rsa를 사용했지만 최근엔 많은 경우 ed25519를 추천한다.
  • -C : 해당 키의 소유자의 이메일 주소. @ 이 포함된 유효한 이메일 경로명을 넣어주면 된다.

이후 키가 놓일 path를 물어보는데 그냥 enter를 입력하면 기본 경로인 ~/.ssh를 사용하게 된다.

키에 대한 암호(passphrase)를 물어보는데 여기서도 enter를 입력하면 키에 대한 암호가 설정되지 않는다(가급적 암호를 입력하자.)
해당 암호에 대한 질문은 확인을 위해 한번 더 물어본다.


참고: Windows에서 OpenSSH 설치여부 확인 및 설치

Window에서는 ssh-keygen.exe가 없을 경우도 있음:

 

다음으로  OpenSSH가 설치되어 있는지 확인

ssh -V
# OpenSSH_for_Windows_9.5p2, LibreSSL 3.8.2 (Window11 기준)

 

설치되지 않았다면 설정 > 앱 > 선택적 기능 에서 "OpenSSH 클라이언트" 를 체크하여 설치할 것.

 

이후 SSH 키를 생성하면 됨.


같이 읽어보면 좋은 자료들

보다 자세한 내용은 다음 url을 확인하라.
https://docs.github.com/ko/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

 

새 SSH 키 생성 및 ssh-agent에 추가 - GitHub Docs

SSH(보안 셸 프로토콜)를 사용하여 GitHub.com의 리포지토리에서 데이터를 액세스하고 쓸 수 있습니다. SSH를 통해 연결할 때 로컬 머신에서 프라이빗 키 파일을 사용하여 인증합니다. 자세한 내용은

docs.github.com

2023.12.27 - [utils/git and github] - [github] ssh 키 등록하기.

 

[github] ssh 키 등록하기.

Github 계정에 ssh public key 등록(설정).ssh public key를 계정에 등록하면 해당 계정의 모든 repository에 ssh 프로토콜로 접속이 가능해짐. 등록하는 방법은 다음과 같음. 1. Settings → SSH and GPG kyes 로 이동.

ds31x.tistory.com

 

초보자의 경우엔 이 글은 우선 생략(agent를 통한 비번 입력 생략하는 방법)2025.07.21 - [utils/git and github] - SSH Agent 사용법

 

SSH Agent 사용법

SSH Agent는 사용자 로그인 session(세션) 동안 ssh 키에 대한 암호를 유지하여 사용자가 한번만 암호를 입력하게 해줌.macOS SSH Agent 특징macOS는 SSH Agent가 기본적으로 launchd를 통해 자동 실행 됨Keychain과

ds31x.tistory.com

 

windows 관련 자료

https://learn.microsoft.com/ko-kr/windows-server/administration/openssh/openssh_keymanagement

 

Windows용 OpenSSH의 키 기반 인증

기본 제공 Windows 도구 또는 PowerShell을 사용하여 Windows용 OpenSSH 서버 키 기반 인증, 생성 및 배포에 대해 알아봅니다.

learn.microsoft.com


2024.05.21 - [utils/git and github] - [Git] git 설치 후 우선 해줘야 하는 작업들

 

[Git] git 설치 후 우선 해줘야 하는 작업들

Git은 운영체제에 따라 패키지 관리자(brew, apt, winget등) 또는 공식 설치 프로그램을 통해 간편하게 설치할 수 있음.자세한 설치 방법은 공식 Git 문서(git-scm.com)에서 확인해 볼 것. 개인적으로 git설

ds31x.tistory.com


 

728x90