ssh 키 페어를 만드는 방법과 오류 해결 방법입니다. (ssh key pair generation and trouble shooting)
아래의 커멘드를 입력하면 ssh 키 페어가 생성 됩니다.
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): [enter for default]
Enter passphrase (empty for no passphrase): [password]
Enter same passphrase again: [password confirmation]
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
...
user@ssh_key_pair_generation
그리고 아래의 키워드로 생성된 public key를 볼 수 있어요.
이 키를 필요한 곳에 복사하면 ssh 키 페어 설정이 완료 되죠.
cat ~/.ssh/id_rsa.pub
ssh-rsa ...
...
...
...
...
user@ssh_key_pair_generation
설명서 대로만 잘 되면 좋겠지만,
가끔 예기치 않은 문제가 발생합니다.
ssh-keygen -t rsa 명령어를 실행하고,
Enter file in which to save the key (/home/user/.ssh/id_rsa): ~/files/id_rsa
부분에서 분명 있는 경로를 입력했는데 파일이나 디렉토리를 찾을 수 없다는 메시지가 나옵니다.
open ~/files/id_rsa failed: No such file or directory.
Saving the key failed: ~/files/id_rsa.
오타를 쳤나 눈 씻고 봐도 제대로 입력했네요.
이럴 땐 cd ~/files 를 이용해 해당 디렉토리로 먼저 갑니다.
Enter file in which to save the key (/home/user/.ssh/id_rsa): ./id_rsa
위처럼 입력하면 ssh key pair가 제대로 생성되요.
여러 개의 ssh key pair를 사용하신다면, ~/.ssh/config에서 아래와 같이 설정 가능하답니다.
nano ~/.ssh/config
Host github.com
IdentityFile ~/myPublicKeyFolder/myGitHubFile
Host heroku.com
IdentityFile ~/myPublicKeyFolder/myHerokuFile
호스팅에서 .ssh 디렉토리 권한을 막아 놨을 경우.
다른 디렉토리에 만든 키를 어떻게 사용해야 할까요?
ssh-agent /bin/bash
ssh-add ~/files/id_rsa
위의 명령어를 사용하면 됩니다.
ssh 키 만들기 도구
참고 자료
Setting a custom path for git private ssh key on linux
by 月風
by 月風