macOS Secure Enclave에 SSH 키를 만들고 Touch ID로 인증하는 설정법
- 명령 3개로 Secure Enclave에 SSH 신원을 만들고 Touch ID로 인증하도록 설정할 수 있음
- 개인 키가 파일로 남지 않고 Secure Enclave 밖으로 추출되지 않아서 키 파일 유출이나 실수 삭제 위험이 없음
- SSH를 쓸 때마다 Touch ID 인증 창이 뜨고, git push나 GitHub 접속도 같은 방식으로 적용됨
- 재부팅 후에는 ssh-add 명령을 다시 실행해야 하고, Mac이 고장 나면 신원도 함께 사라져서 GitHub 등에 새 키를 재등록해야 함
- Hacker News 토론에서는 백업 키를 따로 두라는 지적과 1Password, YubiKey 같은 대안이 함께 거론됨
Hacker News 의견들
이거 쓰면 백업 키는 꼭 하나 있어야 함. 10번 안팎으로 인증을 틀리면 enclave 키가 날아간다는 얘기가 있던데 나도 확인은 못 해봄. 키체인은 백업되는데 enclave 안 내용은 안 된다고 하더라.
백업 키도 다른 Secure Enclave에 두면 되긴 하는데, 종이에 적어두면 사진 찍히거나 OCR 돌리는 과정에서 샐 수 있음. 결국 파일 키 위험으로 돌아감.
파일 키가 없어서 좋다는 건 맞는데, 서비스마다 키를 여러 개 등록할 수 있어야 의미가 있음. 나는 그게 안 되는 곳이 많아서 불편했음.
나는 Trezor 쪽으로 키를 시드에서 다시 만드는 방식 씀. 근데 시드 단어 잃어버리거나 기기 단종되면 답 없어서 완벽하진 않음.
YubiKey 여러 개 쓰고 있음. 터치 확인 옵션 켜두면 AI 에이전트가 멋대로 서버 건드리는 걸 물리적으로 막을 수 있어서 이게 제일 마음에 듦.
기기마다 키 하나씩 두는 게 접근 제어하기 훨씬 편함. 개인 키는 진짜 필요할 때만 내보내는 편임.
1Password도 SSH 키를 키체인처럼 관리해줌. 근데 그건 키가 추출되고 다른 기기로 동기화되는 거라서 이 방식이랑 구분해서 봐야 함.
나도 1Password로 몇 년째 쓰는데 이 기능 아는 사람 생각보다 적더라.
나는 몇 달 써봤는데 워크플로우가 깨져서 접었음. 지금은 로컬 보안 키가 SSH 키를 복호화하는 방식으로 바꿨음. Mac 하드웨어에 묶인다는 게 제일 큰 단점임.
그냥 secretive.dev 깔면 되는 거 아님? 복잡할 것도 없음.
명령이 두 개인데 복잡하다고 하기는 좀 그렇지 않음?
기본 macOS OpenSSH는 FIDO를 안 써서 나는 늘 nixpkgs 걸 따로 깔아 씀. 이 부분이 제일 귀찮았음.
새 기능임. Tahoe랑 Golden Gate부터 SSH agent가 FIDO를 지원하니까 기본 OpenSSH로도 될 걸로 앎.