티스토리 뷰

잘은 모르지만 키베이스에 있는 키 쌍을 SSH 로그인에 쓰고싶었다.

대충 찾아보니 키베이스 키는 OpenPGP고, OpenPGP는 컨테이너같은 거고 RSA 알고리즘의 공개키, 비밀키를 담고있는 모양이다. SSH는 RSA 알고리즘의 공개키, 비밀키로 인증을 한단다. 즉, 변환이 가능하다고 한다. 저들의 관계는 정확히는 모르겠지만 언젠가는 싫어도 알게 되겠지...

참고한 글 목록

1. keybase 키를 내보내서 파일로 저장한다.

프로필 설명에 신경쓰이면 지는겁니다

2. gpg (Gnu PG) 에 비밀키를 임포트. WSL로 진행했다.

 gpg --allow-secret-key-import --import private.key

3. openpgp2ssh가 필요하다. 우분투라 가정하고 apt로 monkeysphere를 설치한다.

sudo apt install monkeysphere

4. 비밀키의 짧은 ID를 알아낸다.

 gpg --list-secret-keys --keyid-format short

위 명령어를 친 뒤 sec이 붙은 2E56AC98 같은 걸걸 찾으면 된다. sec은 비밀키다. 이거 키체인 컨테이너였고만.

저는 이 쪽은 잘 모르므로 전부 모자이크 처리했다.

5. gpg로 비밀키를 내보내고, 그걸 openpgp2ssh로 ssh 비밀키로 변환한다.

아래 한 줄로 되면 좋을텐데

 gpg --export-secret-keys 2E56AC98 | openpgp2ssh 2E56AC98 > id_rsa

그렇지 않다. Keybase에서 들여온 비밀키는 패스프레이즈로 암호화되어있기 때문이다...

내 컴퓨터는 안전하다는 가정 하에, 보안상의 위협을 무릅쓰고 gpg 단에서 비밀키의 패스프레이즈를 해제한 뒤 내보내자.

gpg --edit-key 2E56AC98

gpg> passwd
# 키 패스프레이즈 입력
# 새 암호에는 전부 공란
gpg> quit

이제 아까 하려던 걸 다시 하자.

 gpg --export-secret-keys 2E56AC98 | openpgp2ssh 2E56AC98 > id_rsa

id_rsa가 내보내진 비밀키다.

6. 일단 암호 해제한 비밀키부터 지우자. 이미 위험을 무릅썼지만...

gpg --delete-secret-keys 2E56AC98

7. SSH 비밀키를 패스프레이즈로 암호화하자.

근데 WSL에서는 파일 권한 문제로 바탕화면에서는 안 된다. ~로 옮겨서 chmod로 다른 사용자의 권한을 제거한 뒤 작업한다.

mv id_rsa ~/
cd ~
chmod go-rwx id_rsa  # sudo 필요없는데 아래 이미지에서는 실수로 넣었다.
ssh-keygen -p -f id_rsa

바람직하진 않겠지만 나는 모바일에서도 이 비밀키를 SSH 로그인에 쓸 예정이다. 최소한 패스프레이즈로는 보호되는 게 좋을 것이다.

8. SSH 공개키를 만들어내자.

ssh-keygen -y -f id_rsa > id_rsa.pub

생성된 공개키 (사실 보여줘도 상관없지만.)
비밀키

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함