Hatena
GitHub CLI가 단기 토큰을 지원하는데도 ghtkn이 필요한 이유
소프트웨어처음 오른 때 점수 32
ghtkn은 로컬 개발용 GitHub 토큰을 가져오는 명령줄 도구입니다. GitHub CLI(gh)에 짧게 유효한 토큰 기능이 생겼지만, 작성자는 ghtkn이 여전히 필요하다고 주장합니다.
무슨 일이 있었나요?
GitHub CLI(gh)가 몇 시간 뒤 사라지고 자동으로 새로 발급되는 짧은 수명의 토큰을 지원하기 시작했습니다. 아직 공개 미리보기 단계이고, 사용자가 직접 켜야 합니다. GitHub는 나중에 이 기능을 기본값으로 만들 계획입니다. 작성자는 이 때문에 ghtkn이 필요 없어졌다는 생각에 반대하며, 계속 ghtkn을 개발하겠다고 밝혔습니다.
토큰은 어떻게 작동하나요?
ghtkn은 GitHub 앱에서 사용자 액세스 토큰을 받아 로컬 개발에 쓰게 해 줍니다. 액세스 토큰은 8시간이 지나면 만료됩니다. 리프레시 토큰은 더 오래 가며, 만료된 액세스 토큰 대신 새 액세스 토큰을 받게 해 줍니다. 리프레시 토큰을 누군가 훔치면 계속해서 새 액세스 토큰을 만들 수 있으므로, 이 토큰을 지키는 것이 핵심입니다.
주요 숫자와 사실
왜 중요한가요?
작성자는 gh가 짧은 토큰을 도입한 뒤에도 ghtkn의 보안 장점이 여전히 중요하다고 말합니다. ghtkn은 리프레시 토큰을 암호화하고, 에이전트 API로 절대 돌려주지 않습니다. 또 앱이 설치된 조직과 저장소로만 접근을 제한하며, 사용자가 권한이 다른 앱을 고를 수 있게 합니다. 리프레시 토큰을 일반 텍스트로 저장하지도 않습니다. 반면 gh 토큰은 사용자가 접근할 수 있는 모든 저장소에 닿을 수 있습니다.
앞으로 지켜볼 점
- GitHub CLI의 짧은 수명 토큰이 기본값이 되는지, 그리고 그때 토큰 저장 방식이 어떻게 바뀌는지
- macOS에서 설명된 OS 키링의 약점이 고쳐지는지, 아니면 바뀌는지
- v0.4.2 이후 ghtkn의 docs 명령과 ghtkn 에이전트 스킬
용어 풀이
- ghtkn
- 로컬 개발에서 GitHub 사용자 액세스 토큰을 받아 주는 명령줄 도구입니다.
- 액세스 토큰
- GitHub에 접근할 수 있는 권한을 증명하는 임시 열쇠입니다. 8시간 뒤 만료됩니다.
- 리프레시 토큰
- 만료된 액세스 토큰을 대신할 새 액세스 토큰을 받을 때 쓰는 더 오래 가는 토큰입니다.
- OS 키링
- 운영체제가 비밀번호나 토큰 같은 민감한 정보를 안전하게 보관하는 저장소입니다.
- hosts.yml
- gh가 키링 저장에 실패했을 때 토큰을 일반 텍스트로 저장하는 설정 파일입니다.