Skip to main content

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

기존 SSH 키를 확인한 후 인증에 사용할 새 SSH 키를 생성한 다음 ssh-agent에 추가할 수 있습니다.

Platform navigation

SSH 키 암호 정보

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

SSH 키를 생성할 때 암호를 추가하여 키를 추가로 보호할 수 있습니다. 키를 사용할 때마다 암호를 입력해야 합니다. 키에 암호가 있고 키를 사용할 때마다 암호를 입력하지 않으려는 경우 SSH 에이전트에 키를 추가할 수 있습니다. SSH 에이전트는 SSH 키를 관리하고 암호를 저장합니다.

SSH 키가 아직 없는 경우 인증에 사용할 새 SSH 키를 생성해야 합니다. SSH 키가 이미 있는지 확실하지 않은 경우 기존 키를 확인할 수 있습니다. 자세한 내용은 "기존 SSH 키 확인"을(를) 참조하세요.

하드웨어 보안 키를 사용하여 GitHub에 인증하려면 하드웨어 보안 키에 대한 새 SSH 키를 생성해야 합니다. 키 쌍으로 인증할 때 하드웨어 보안 키를 컴퓨터에 연결해야 합니다. 자세한 내용은 OpenSSH 8.2 릴리스 정보를 참조하세요.

새 SSH 키 생성

로컬 머신에서 새 SSH 키를 생성할 수 있습니다. 키를 생성한 후 GitHub.com의 계정에 공개 키를 추가하여 SSH를 통한 Git 작업에 대한 인증을 사용하도록 설정할 수 있습니다.

참고: GitHub는 2022년 3월 15일에 이전의 안전하지 않은 키 형식을 삭제하여 보안을 향상시켰습니다.

해당 날짜를 기준으로 DSA 키(ssh-dss)는 더 이상 지원되지 않습니다. GitHub에서 개인 계정에 새 DSA 키를 추가할 수 없습니다.

valid_after가 2021년 11월 2일 이전인 RSA 키(ssh-rsa)는 서명 알고리즘을 계속 사용할 수 있습니다. 해당 날짜 이후에 생성된 RSA 키는 SHA-2 서명 알고리즘을 사용해야 합니다. SHA-2 서명을 사용하려면 일부 이전 클라이언트를 업그레이드해야 할 수 있습니다.

  1. Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.

  2. 아래 텍스트를 붙여넣은 후 예제에서 사용한 이메일을 GitHub 이메일 주소로 바꿔서 붙여넣습니다.

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

    참고: Ed25519 알고리즘을 지원하지 않는 레거시 시스템을 사용하는 경우 다음을 사용합니다.

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

    그러면 제공된 이메일을 레이블로 사용하여 새 SSH 키가 생성됩니다.

    > Generating public/private ALGORITHM key pair.
    

    "키를 저장할 파일을 입력하세요"라는 프롬프트가 표시되면 입력 키를 눌러 기본 파일 위치를 적용할 수 있습니다. 이전에 SSH 키를 만든 적이 있는 경우 ssh-keygen이 다른 키를 다시 작성하도록 요청할 수 있으며, 이 경우 사용자 지정 이름을 가진 SSH 키를 만드는 것이 좋습니다. 이를 수행하려면 본 파일 위치를 입력하고 id_ALGORITHM을 사용자 지정 키 이름으로 바꿉니다.

    > Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM): [Press enter]
    
    > Enter file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter]
    
    > Enter a file in which to save the key (/home/YOU/.ssh/id_ALGORITHM):[Press enter]
    
  3. 프롬프트에 보안 암호를 입력합니다. 자세한 내용은 "SSH 키 암호 사용"을(를) 참조하세요.

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
    

ssh-agent에 SSH 키 추가

키를 관리하기 위해 ssh-agent에 새 SSH 키를 추가하기 전에 기존 SSH 키를 확인하고 새 SSH 키를 생성해야 합니다. 에이전트에 SSH 키를 추가할 때 macports, homebrew 또는 기타 외부 원본에서 설치한 애플리케이션이 아닌 기본 macOS ssh-add 명령을 사용합니다.

  1. 백그라운드에서 ssh-agent를 시작합니다.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    

    환경에 따라 다른 명령을 사용해야 할 수 있습니다. 예를 들어 ssh-agent를 시작하기 전에 sudo -s -H를 실행하여 루트 액세스를 사용해야 하거나 exec ssh-agent bash 또는 exec ssh-agent zsh를 사용하여 ssh-agent를 실행해야 할 수 있습니다.

  2. macOS Sierra 10.12.2 이상을 사용하는 경우 ssh-agent에 키를 자동으로 로드하고 키 집합에 암호를 저장하도록 ~/.ssh/config 파일을 수정해야 합니다.

    • 먼저 ~/.ssh/config 파일이 기본 위치에 있는지 확인합니다.

      $ open ~/.ssh/config
      > The file /Users/YOU/.ssh/config does not exist.
      
    • 파일이 없으면 파일을 만듭니다.

      touch ~/.ssh/config
      
    • ~/.ssh/config 파일을 열고 다음 줄을 포함하도록 파일을 수정합니다. SSH 키 파일에 예제 코드와 다른 이름 또는 경로가 있는 경우 현재 설정과 일치하도록 파일 이름 또는 경로를 수정합니다.

      Text
      Host github.com
        AddKeysToAgent yes
        UseKeychain yes
        IdentityFile ~/.ssh/id_ed25519
      

      참고:

      • 키에 암호를 추가하지 않도록 선택한 경우 UseKeychain 줄을 생략해야 합니다.

      • Bad configuration option: usekeychain 오류가 표시되면 구성의 Host *.github.com 섹션에 줄을 추가합니다.

        Text
        Host github.com
          IgnoreUnknown UseKeychain
        
  3. ssh-agent에 SSH 프라이빗 키를 추가하고 키 집합에 암호를 저장합니다. 다른 이름으로 키를 만들거나 이름이 다른 기존 키를 추가하는 경우 명령의 _id_ed25519_를 프라이빗 키 파일의 이름으로 바꿉니다.

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

    참고: --apple-use-keychain 옵션은 ssh-에이전트에 SSH 키를 추가할 때 암호를 키 체인에 저장합니다. 키에 암호를 추가하지 않기로 선택한 경우 --apple-use-keychain 옵션 없이 명령을 실행합니다.

    --apple-use-keychain 옵션은 ssh-add의 Apple 표준 버전에 있습니다. Monterey(12.0) 이전의 macOS 버전에서 --apple-use-keychain--apple-load-keychain 플래그는 -K-A 구문을 각각 사용했습니다.

    ssh-add의 Apple 표준 버전이 설치치되어 있지 않은 경우, 오류가 발생할 수 있습니다. 자세한 내용은 "오류: ssh-add: illegal option -- apple-use-keychain"을(를) 참조하세요.

    암호를 묻는 메시지가 계속 표시되면, ~/.zshrc 파일(또는 bash용 ~/.bashrc 파일)에 명령을 추가해야 할 수 있습니다.

  4. GitHub의 계정에 SSH 퍼블릭 키를 추가합니다. 자세한 내용은 "GitHub 계정에 새 SSH 키 추가"을(를) 참조하세요.

GitHub Desktop이 설치된 경우 이를 사용하여 리포지토리를 복제하고 SSH 키를 처리하지 않을 수 있습니다.

  1. 상승된 관리자 PowerShell 창에서 ssh-agent가 실행 중인지 확인합니다. "SSH 키 암호 사용"의 "ssh-agent 자동 시작" 명령을 사용하거나 다음과 같이 수동으로 시작할 수 있습니다.

    # start the ssh-agent in the background
    Get-Service -Name ssh-agent | Set-Service -StartupType Manual
    Start-Service ssh-agent
    
  2. 상승된 권한이 없는 터미널 창에서 ssh-agent에 SSH 프라이빗 키를 추가합니다. 다른 이름으로 키를 만들거나 이름이 다른 기존 키를 추가하는 경우 명령의 _id_ed25519_를 프라이빗 키 파일의 이름으로 바꿉니다.

    ssh-add c:/Users/YOU/.ssh/id_ed25519
    
  3. GitHub의 계정에 SSH 퍼블릭 키를 추가합니다. 자세한 내용은 "GitHub 계정에 새 SSH 키 추가"을(를) 참조하세요.

  1. 백그라운드에서 ssh-agent를 시작합니다.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    

    환경에 따라 다른 명령을 사용해야 할 수 있습니다. 예를 들어 ssh-agent를 시작하기 전에 sudo -s -H를 실행하여 루트 액세스를 사용해야 하거나 exec ssh-agent bash 또는 exec ssh-agent zsh를 사용하여 ssh-agent를 실행해야 할 수 있습니다.

  2. ssh-agent에 SSH 프라이빗 키를 추가합니다.

    다른 이름으로 키를 만들거나 이름이 다른 기존 키를 추가하는 경우 명령의 _id_ed25519_를 프라이빗 키 파일의 이름으로 바꿉니다.

    ssh-add ~/.ssh/id_ed25519
    
  3. GitHub의 계정에 SSH 퍼블릭 키를 추가합니다. 자세한 내용은 "GitHub 계정에 새 SSH 키 추가"을(를) 참조하세요.

하드웨어 보안 키에 대한 새 SSH 키 생성

macOS나 Linux를 사용하는 경우 새 SSH 키를 생성하기 전에 SSH 클라이언트를 업데이트하거나 새 SSH 클라이언트를 설치해야 할 수 있습니다. 자세한 내용은 "오류: 알 수 없는 키 유형"을(를) 참조하세요.

  1. 컴퓨터에 하드웨어 보안 키를 삽입합니다.

  2. Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.

  3. 아래 텍스트를 붙여넣은 후 예제의 이메일 주소를 GitHub의 계정과 여결된 이메일 주소로 바꿉니다.

    ssh-keygen -t ed25519-sk -C "your_email@example.com"
    
    ssh-keygen -t ed25519-sk -C "your_email@example.com"
    
    ssh-keygen -t ed25519-sk -C "your_email@example.com"
    

    참고: 명령이 실패하고 invalid format 또는 feature not supported, 오류가 발생하는 경우 Ed25519 알고리즘을 지원하지 않는 하드웨어 보안 키를 사용하고 있을 수 있습니다. 대신 다음 명령을 사용합니다.

     ssh-keygen -t ecdsa-sk -C "your_email@example.com"
    
  4. 메시지가 표시되면 하드웨어 보안 키의 단추를 터치합니다.

  5. “Enter a file in which to save the key”(키를 저장할 파일 입력)라는 메시지가 표시되면 Enter 키를 눌러 기본 파일 위치를 적용합니다.

    > Enter a file in which to save the key (/Users/YOU/.ssh/id_ed25519_sk): [Press enter]
    
    > Enter a file in which to save the key (c:\Users\YOU\.ssh\id_ed25519_sk):[Press enter]
    
    > Enter a file in which to save the key (/home/YOU/.ssh/id_ed25519_sk):[Press enter]
    
  6. 암호를 입력하라는 메시지가 표시되면 Enter 키를 누릅니다.

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
    
  7. GitHub의 계정에 SSH 퍼블릭 키를 추가합니다. 자세한 내용은 "GitHub 계정에 새 SSH 키 추가"을(를) 참조하세요.