Oracle Cloud 인스턴스를 생성하는 과정에서 SSH 접속을 설정하는 과정에서 SSH 키 쌍을 생성하는 과정이 있다.
Oracle Cloud #2 - 인스턴스 만들기
저번 글에서 Oracle Cloud를 사용하기 위해 회원가입을 하는 방법을 설명한 바 있다. ORACLE Cloud #1 - 가입하기 전에 필자는 MS Azure for Students에 가입하는 법에 대해 글을 쓴 바 있다. Azure for Students #1 -
sprout13.tistory.com
그러나 이러한 SSH 키는 SSH가 설치되어 있는 경우, 로컬 컴퓨터에서도 생성할 수 있다.
이 글에서는 Windows에서 OpenSSH를 이용하여 SSH 키 쌍을 생성하는 방법을 알아본다.
아래의 명령을 입력한다.
ssh-keygen -t rsa
이 명령은 RSA 알고리즘에 기반하여 공개 키 및 개인 키 쌍을 생성한다. 기본 값은 RSA-3072이다.
키 길이를 개인 설정하려면 -b 옵션을 준다.
ssh-keygen -t rsa -b "원하는 비트 값"
예를 들어 8192비트 길이의 키를 생성하고 싶다면 아래와 같이 입력한다.
ssh-keygen -t rsa -b 8192
비트 길이는 최소 1024비트, 최대 16384비트이다.
해당 명령을 실행하면 아래와 같이 파일을 어디에 저장할 것이냐고 물어본다.
해당 칸을 빈칸으로 남겨두면 "%homepath%\.ssh"에 "id_rsa"와 "id_rsa.pub"라는 이름으로 키 쌍을 저장한다.
"%homepath%\.ssh"
이후로도 몇 가지를 더 물어보는데, 모두 빈칸으로 남겨두어도 무방하다.
최종적으로 키가 생성되면 아래와 같이 출력된다.
생성된 키는 상술하였듯 "%homepath%\.ssh"에 저장된다.
이때, "id_rsa"는 개인 키(private key)이고, "id_rsa.pub"는 공개 키(public key)이다.
각각의 키는 메모장을 통해 그 내용을 볼 수 있다.
개인 키는 이 글에서와 같이 사용자 로그인과 같은 중요한 작업에 사용되는 키이다.
Oracle Cloud #3 - SSH를 이용하여 인스턴스에 접속하기
저번 글에서 클라우드 인스턴스를 생성하는 방법에 대해 알아본 바 있다. Oracle Cloud #2 - 인스턴스 만들기 저번 글에서 Oracle Cloud를 사용하기 위해 회원가입을 하는 방법을 설명한 바 있다. ORACLE Cl
sprout13.tistory.com
개인 키는 사용자를 고유하게 식별하는 데에 사용되며, 공개 키와 짝을 이루어 인증에 사용된다. 사용자가 원격 서버에 연결할 때, 로컬 시스템은 개인 키를 사용하여 메시지를 서명하고, 원격 시스템에서는 해당 개인 키와 짝을 이루는 공개 키를 사용하여 서명을 확인해 사용자를 인증한다. 이 때문에 개인 키가 외부에 노출된다면 이를 통해 악의적인 공격자가 사용자의 계정에 접근할 수 있다. 따라서 개인 키는 타인과 공유되어서는 안 되며, 개인 키가 외부에 노출된 경우, 이를 신속하게 교체해야 한다.
공개 키는 그 이름 그대로 외부에 공개되는 키이다.
공개 키는 다른 시스템에서 사용자를 인증하는 데 사용되며, 사용자가 원격 서버에 접속하는 경우, 해당 서버에 등록된 공개 키를 이용하여 로컬 컴퓨터가 개인 키로 암호화한 후 보내는 메시지를 해독하여 사용자를 인증한다.
여담
키는 얼마든지 만들 수 있으므로, 마음껏 만들어보자
이 글에서, SSH-Keygen을 이용해 로컬 컴퓨터에서 생성한 키는 기본값으로 RSA-3072를 사용하는데, 이는 널리 사용되는 RSA-2048보다 더 보안 수준이 높다. RSA 키의 길이가 증가함에 따라 암호화의 안전성이 향상되기 때문이다.
위 문단을 보고 '그렇다면 RSA 키의 길이가 증가하면 좋구나'라고 생각하는 사람이 있을 텐데, 반만 맞고 반은 틀리다.
키의 길이가 길어질수록 보안 수준은 높아지지만, 이를 이용해 암호화-복호화하는 과정에서 더 많은 리소스를 요구한다.
이 때문에 현재는 RSA -2048이 가장 널리 쓰이며, 조금 더 높은 보안 수준을 원한다면 상술한 RSA-3072나 RSA-4096, RSA-8192을 이용한다.
참고 자료 및 관련 글
https://namu.wiki/w/%EA%B3%B5%EA%B0%9C%ED%82%A4%20%EC%95%94%ED%98%B8%ED%99%94%20%EB%B0%A9%EC%8B%9D
공개키 암호화 방식
암호화 와 복호화 에 같은 키를 사용하는 비밀키 암호화 기법 과 달리, 암호화와 복호화에 사용하는 키 원칙적으
namu.wiki
https://namu.wiki/w/RSA%20%EC%95%94%ED%98%B8%ED%99%94
RSA 암호화
RSA key cryptosystem 현재 SSL/TLS 에 가장 많이 사용되는 공개키 암호화 알고리즘 이다.
namu.wiki
https://ko.wikipedia.org/wiki/Ssh-keygen
ssh-keygen - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전.
ko.wikipedia.org
https://en.wikipedia.org/wiki/Ssh-keygen
ssh-keygen - Wikipedia
From Wikipedia, the free encyclopedia Protocol suite found on Unix, Unix-like and Microsoft Windows computer systems used ssh-keygen is a standard component of the Secure Shell (SSH) protocol suite found on Unix, Unix-like and Microsoft Windows computer sy
en.wikipedia.org
https://en.wikipedia.org/wiki/Secure_Shell
Secure Shell - Wikipedia
From Wikipedia, the free encyclopedia Cryptographic network protocol The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network.[1] Its most notable applications are remote login an
en.wikipedia.org
https://ko.wikipedia.org/wiki/RSA_%EC%95%94%ED%98%B8
RSA 암호 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. RSA[1] 암호는 공개키 암호시스템의 하나로, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 알려져 있다. RSA가 갖는 전자서명 기능은 인증을 요구
ko.wikipedia.org
https://sprout13.tistory.com/67
Oracle Cloud #3 - SSH를 이용하여 인스턴스에 접속하기
저번 글에서 클라우드 인스턴스를 생성하는 방법에 대해 알아본 바 있다. Oracle Cloud #2 - 인스턴스 만들기 저번 글에서 Oracle Cloud를 사용하기 위해 회원가입을 하는 방법을 설명한 바 있다. ORACLE Cl
sprout13.tistory.com
'컴퓨터 > Windows' 카테고리의 다른 글
expand-vdisk를 이용하여 가상 디스크 파일의 최대 용량 늘리기 (0) | 2024.09.01 |
---|---|
Winget에서 특정 버전의 패키지를 설치하기 (0) | 2024.08.01 |
DISKPART를 이용한 가상 하드 디스크 연결 및 연결 해제 (0) | 2024.05.01 |
"앱 및 기타 보낸 사람이 전송한 알림"의 목록 초기화하기 (0) | 2024.05.01 |
Windows "이 PC에 화면 표시"를 이용하여 Android의 화면 보기 (0) | 2024.04.01 |
댓글