macOS, Linux 또는 Windows Subsystem for Linux에서 OpenSSH를 사용하여 SSH 키를 만드는 방법

macOS, Linux 또는 Windows Subsystem for Linux에서 OpenSSH를 사용하여 SSH 키를 만드는 방법

2022-06-01 last update

6 minutes reading Cloud Computing

소개


원격 Linux 서버를 설정할 때 서버에 안전하게 연결하는 방법을 결정해야 합니다.비밀번호는 사용자의 신분을 검증하는 방법이지만 비밀번호에 여러 가지 빈틈이 있어 폭력 공격을 통해 해독할 수 있다.일반적으로 암호 대신 보안 케이스 키 (널리 알려진 SSH 키) 를 사용합니다. 원격 Linux 서버에 더욱 안전하게 연결하는 방법을 제공하기 때문입니다.SSH 키는 Secure Shell 암호화 네트워크 프로토콜의 일부로서 사용자가 원격 서버에 텍스트 기반 명령을 보내거나 서비스를 설정하는 등 안전하지 않은 네트워크에서 네트워크 서비스를 안전하게 수행할 수 있도록 합니다.
이 강좌는 macOS와 Linux에서 OpenSSH(오픈 소스 SSH 도구)를 사용하여 SSH 키를 만드는 절차와 Linux를 사용하는 Windows 서브시스템을 통해 Windows에서 SSH 키를 만드는 절차를 안내합니다.이것은 명령줄을 막 사용하기 시작한 사용자를 위해 작성된 것으로 개인용 컴퓨터의 단말기에 접근하는 데 지도를 제공할 것이다.이 강좌가 완성되면 SSH 키를 가지고 강좌How To Set Up an Ubuntu 20.04 Server on a DigitalOcean Droplet에서 서버를 안전하게 설정할 수 있습니다. 이 강좌는 Introduction to the Cloud Curriculum의 일부입니다.
명령줄에 익숙하고 SSH를 사용하여 원격 서버에 연결하는 방법에 대한 자세한 내용은 Setting Up SSH Keys 에서 일련의 Linux 운영 체제에 대한 자습서를 참조하십시오.

선결 조건


이 강좌를 완성하려면 다음이 필요합니다.
  • 다음 운영체제 중 하나를 실행하는 로컬 컴퓨터: macOS, Linux 또는 Windows Subsystem for Linux가 설치된 Windows.Windows를 사용하는 경우 Microsoft’s documentation page 에서 Windows Subsystem for Linux를 다운로드하거나 업데이트할 수 있습니다.OpenSSH는 일련의 Linux 버전에 적용되어야 하지만, 이 강좌는 Ubuntu 20.04를 사용하여 테스트를 진행했습니다.
  • 참고 Linux Windows 서브시스템이 없는 Windows 컴퓨터에서 SSH 키를 만드는 방법에 대한 자세한 내용은 제품 설명서How to Create SSH Keys with PuTTY on Windows를 참조하십시오.
  • 터미널과 명령행 사용에 익숙하다.터미널과 명령줄을 사용하는 방법을 알고 싶으면 저희 안내서A Linux Command Line Primer를 방문하십시오.
  • 1단계 - SSH 키 이해


    SSH 키는 원격 서버에 액세스를 요청하는 사용자의 신원을 확인하는 데 사용할 수 있는 두 개의 긴 문자열입니다.이러한 키는 사용자가 로컬 컴퓨터에서 SSH 유틸리티를 사용하여 생성합니다.키는 사용자의 로컬 컴퓨터에 저장된 개인 키입니다.또 다른 키는 공공이며 원격 서버나 사용자가 안전하게 통신하기를 원하는 다른 실체와 공유됩니다.
    사용자가 SSH를 사용하여 서버에 연결을 요청하면 서버에서 공개 키로 암호화된 메시지를 보냅니다. 이 공개 키는 연결된 개인 키로만 복호화할 수 있습니다.그리고 사용자의 로컬 컴퓨터는 개인 키를 사용하여 메시지를 복호화하려고 시도합니다.암호 해독에 성공하면 서버에서 암호 없이 사용자에게 액세스 권한을 부여합니다.인증을 거친 사용자는 원격 서버에 텍스트 기반 명령을 보내기 위해 로컬 터미널에서 원격 셸 세션을 시작할 수 있습니다.
    다음 단계에서는 SSH 키를 생성하는 데 사용되는 SSH 유틸리티에 액세스할 수 있도록 컴퓨터에 터미널을 엽니다.

    단계 2 - 컴퓨터에서 터미널 열기


    터미널에서는 그래픽 사용자 인터페이스 대신 텍스트 기반 명령을 사용하여 컴퓨터와 상호 작용할 수 있습니다.컴퓨터 터미널에 액세스하는 방식은 사용자가 사용하는 운영 체제 유형에 따라 다릅니다.
    macOS를 실행하는 컴퓨터에서 Terminal 응용 프로그램은 보통 Utilities 폴더의 Applications 폴더에 있습니다.또한 검색 스포트라이트에서 "terminal"을 검색하여 찾을 수 있습니다.
    Linux 컴퓨터에서 작업하는 경우 릴리스의 기본 터미널 응용 프로그램은 대개 Utilities 폴더의 Applications 폴더에 있습니다.데스크톱 검색 기능을 사용하여 터미널을 검색하여 찾을 수도 있습니다.
    Windows Subsystem for Linux를 실행하는 Windows 컴퓨터에서 작업하는 경우 Linux 터미널은 설치 후 바로 열어야 합니다.또한 데스크톱 검색 기능을 사용하여 Ubuntu 를 검색하여 찾을 수 있습니다.
    시스템의 터미널 응용 프로그램을 찾은 후 새 터미널 창을 엽니다.터미널에는 사용자 이름, 달러 기호 $ 및 커서가 표시됩니다.여기서 명령을 입력하여 터미널에 무엇을 해야 하는지 알려 줍니다.
    다음 단계에서는 SSH 키 쌍을 생성하기 위해 텍스트 기반 명령을 입력합니다.

    3단계 - OpenSSH를 사용하여 키 생성


    macOS나 Linux 운영 체제에 표준 OpenSSH 도구 모음이 설치되어 있어야 합니다.이 도구에는 유틸리티ssh-keygen가 포함되어 있으며 이를 사용하여 SSH 키를 생성합니다.
    터미널에 다음 명령을 입력합니다.
    1. ssh-keygen
    그런 다음 키 포인트의 위치를 선택하라는 메시지가 표시됩니다.기본적으로 키는 ~/.ssh 디렉터리에 저장됩니다. 개인 키의 파일 이름은 id_rsa, 공개 키의 파일 이름은 id_rsa.pub 입니다.기본 위치를 사용하면 SSH 클라이언트가 인증할 때 자동으로 SSH 키를 찾을 수 있으므로 이러한 기본 옵션을 적용하는 것이 좋습니다.이 작업을 수행하려면 누르십시오ENTER:
    Output
    Generating public/private rsa key pair. Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
    <$>[경고]
    경고: 이전에 키 쌍을 생성한 경우 기존 키를 덮어쓰는지 확인하는 메시지가 표시됩니다.
    Output
    /home/sammy/.ssh/id_rsa already exists. Overwrite (y/n)?
    디스크를 덮어쓰는 키를 선택하면 이전 키를 사용하여 인증할 수 없습니다.'예'를 선택하는 것은 역전할 수 없는 파괴적인 과정이다.
    디스크의 기존 키를 덮어쓰려면 Y 키를 누른 다음 ENTER 키를 누릅니다.
    <$>
    기본 위치를 선택하면 공개 키는 /home/sammy/.ssh/id_rsa.pub, 개인 키는 /home/sammy/.ssh/id_rsa 에 있습니다.파일 경로에서 sammy 는 사용자 이름으로 바뀝니다.
    키의 위치를 선택하면 디스크의 개인 키 파일을 암호화하는 옵션 암호를 입력하라는 메시지가 표시됩니다.
    암호 구문을 입력하면 암호 해독 키를 저장하는 SSH 프록시 소프트웨어를 실행하지 않는 한 이 키를 사용할 때마다 암호 구문을 제공해야 합니다.암호 구문을 사용하는 것이 좋습니다. 그러나 ENTER 을 누르면 이 알림을 우회할 수 있습니다.
    Output
    Created directory '/home/sammy/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again:
    마지막 프롬프트가 표시되면 SSH 키 쌍이 생성됩니다.
    Output
    Your identification has been saved in /home/sammy/.ssh/id_rsa. Your public key has been saved in /home/sammy/.ssh/id_rsa.pub. The key fingerprint is: a9:49:EX:AM:PL:E3:3e:a9:de:4e:77:11:58:b6:90:26 sammy@203.0.113.0 The key's randomart image is: +--[ RSA 2048]----+ | ..o | | E o= . | | o. o | | .. | | ..S | | o o. | | =o.+. | |. =++.. | |o=++. | +-----------------+
    인증에 사용할 수 있는 공개 키와 개인 키가 있습니다.

    결론


    축하합니다. 현재 SSH 키를 생성했습니다.이 키들은 원격 서버를 안전하게 연결하는 데 사용할 수 있으며, How To Set Up an Ubuntu 20.04 Server on a DigitalOcean Droplet 에서 본 강좌 이후의 강좌 Introduction to the Cloud Curriculum 에 필요합니다.
    SSH 사용에 대한 자세한 내용은 설명서SSH Essentials: Working With SSH Servers, Clients, and Keys를 참조하십시오.