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 작업에 대한 인증을 사용하도록 설정할 수 있습니다.
Note
GitHub는 2022년 3월 15일에 이전의 안전하지 않은 키 형식을 삭제하여 보안을 향상시켰습니다.
해당 날짜를 기준으로 DSA 키(ssh-dss
)는 더 이상 지원되지 않습니다. GitHub에서 개인 계정에 새 DSA 키를 추가할 수 없습니다.
valid_after
가 2021년 11월 2일 이전인 RSA 키(ssh-rsa
)는 서명 알고리즘을 계속 사용할 수 있습니다. 해당 날짜 이후에 생성된 RSA 키는 SHA-2 서명 알고리즘을 사용해야 합니다. SHA-2 서명을 사용하려면 일부 이전 클라이언트를 업그레이드해야 할 수 있습니다.
-
Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.
-
아래 텍스트를 붙여넣은 후 예제에서 사용한 이메일을 GitHub 이메일 주소로 바꿔서 붙여넣습니다.
ssh-keygen -t ed25519 -C "your_email@example.com"
Note
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]
-
프롬프트에 보안 암호를 입력합니다. 자세한 내용은 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
명령을 사용합니다.
-
백그라운드에서 ssh-agent를 시작합니다.
$ eval "$(ssh-agent -s)" > Agent pid 59566
환경에 따라 다른 명령을 사용해야 할 수 있습니다. 예를 들어 ssh-agent를 시작하기 전에
sudo -s -H
를 실행하여 루트 액세스를 사용해야 하거나exec ssh-agent bash
또는exec ssh-agent zsh
를 사용하여 ssh-agent를 실행해야 할 수 있습니다. -
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
Host github.com AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519
Note
- 키에 암호를 추가하지 않도록 선택한 경우
UseKeychain
줄을 생략해야 합니다. Bad configuration option: usekeychain
오류가 표시되면 구성의Host *.github.com
섹션에 줄을 추가합니다.
Text Host github.com IgnoreUnknown UseKeychain
Host github.com IgnoreUnknown UseKeychain
- 키에 암호를 추가하지 않도록 선택한 경우
-
-
ssh-agent에 SSH 프라이빗 키를 추가하고 키 집합에 암호를 저장합니다. 다른 이름으로 키를 만들거나 이름이 다른 기존 키를 추가하는 경우 명령의 _id_ed25519_를 프라이빗 키 파일의 이름으로 바꿉니다.
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Note
--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
파일)에 명령을 추가해야 할 수 있습니다. -
GitHub의 계정에 SSH 퍼블릭 키를 추가합니다. 자세한 내용은 "GitHub 계정에 새 SSH 키 추가"을(를) 참조하세요.
GitHub Desktop이 설치된 경우 이를 사용하여 리포지토리를 복제하고 SSH 키를 처리하지 않을 수 있습니다.
-
새 상승된 관리자 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
-
상승된 권한이 없는 터미널 창에서 ssh-agent에 SSH 프라이빗 키를 추가합니다. 다른 이름으로 키를 만들거나 이름이 다른 기존 키를 추가하는 경우 명령의 _id_ed25519_를 프라이빗 키 파일의 이름으로 바꿉니다.
ssh-add c:/Users/YOU/.ssh/id_ed25519
-
GitHub의 계정에 SSH 퍼블릭 키를 추가합니다. 자세한 내용은 "GitHub 계정에 새 SSH 키 추가"을(를) 참조하세요.
-
백그라운드에서 ssh-agent를 시작합니다.
$ eval "$(ssh-agent -s)" > Agent pid 59566
환경에 따라 다른 명령을 사용해야 할 수 있습니다. 예를 들어 ssh-agent를 시작하기 전에
sudo -s -H
를 실행하여 루트 액세스를 사용해야 하거나exec ssh-agent bash
또는exec ssh-agent zsh
를 사용하여 ssh-agent를 실행해야 할 수 있습니다. -
ssh-agent에 SSH 프라이빗 키를 추가합니다.
다른 이름으로 키를 만들거나 이름이 다른 기존 키를 추가하는 경우 명령의 _id_ed25519_를 프라이빗 키 파일의 이름으로 바꿉니다.
ssh-add ~/.ssh/id_ed25519
-
GitHub의 계정에 SSH 퍼블릭 키를 추가합니다. 자세한 내용은 "GitHub 계정에 새 SSH 키 추가"을(를) 참조하세요.
하드웨어 보안 키에 대한 새 SSH 키 생성
macOS나 Linux를 사용하는 경우 새 SSH 키를 생성하기 전에 SSH 클라이언트를 업데이트하거나 새 SSH 클라이언트를 설치해야 할 수 있습니다. 자세한 내용은 오류: 알 수 없는 키 유형을(를) 참조하세요.
-
컴퓨터에 하드웨어 보안 키를 삽입합니다.
-
Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.
-
아래 텍스트를 붙여넣은 후 예제의 이메일 주소를 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"
Note
명령이 실패하고
invalid format
또는feature not supported,
오류가 발생하는 경우 Ed25519 알고리즘을 지원하지 않는 하드웨어 보안 키를 사용하고 있을 수 있습니다. 대신 다음 명령을 사용합니다.ssh-keygen -t ecdsa-sk -C "your_email@example.com"
-
메시지가 표시되면 하드웨어 보안 키의 단추를 터치합니다.
-
“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]
-
암호를 입력하라는 메시지가 표시되면 Enter 키를 누릅니다.
> Enter passphrase (empty for no passphrase): [Type a passphrase] > Enter same passphrase again: [Type passphrase again]
-
GitHub의 계정에 SSH 퍼블릭 키를 추가합니다. 자세한 내용은 "GitHub 계정에 새 SSH 키 추가"을(를) 참조하세요.