Codex CLI 로그인 방법: --device-auth로 원격 환경에서 처음 연결하는 법
TL;DR
원격 서버나 헤드리스 환경에서 일반 브라우저 로그인의 localhost 콜백이 작동하지 않는다면
codex login --device-auth
를 사용합니다. 개인 계정은 ChatGPT 보안 설정에서, Workspace 계정은 관리자가 Workspace 권한에서 기기 코드 로그인을 먼저 허용해야 합니다. 터미널에 나온 링크와 일회용 코드는 프롬프트나 메신저에 붙이지 말고 브라우저에서만 사용한 뒤,
codex login status
로 활성 인증 방식을 확인합니다.
핵심 3줄 요약
codex login --device-auth
를 실행합니다. 출력된 링크를 브라우저에서 열어 로그인한 뒤 일회용 코드를 입력합니다.codex login status
가 활성 인증 방식을 보여주는지 확인해야 첫 로그인이 끝납니다.이 글에서 다룰 내용
- 기기 코드 인증이 필요한 상황과 일반
codex login의 차이 - 개인 계정과 Workspace에서 먼저 확인할 설정
-
codex login --device-auth를 시작하는 위치와 실행 순서 - 일회용 코드와
auth.json을 다루는 안전 경계 -
codex login status로 완료 여부를 검증하는 방법
Codex 기기 코드 인증은 무엇이고 언제 쓰나
Codex의 기기 코드 인증은 터미널의 로그인 요청과 브라우저의 계정 승인을 나누는 베타 방식입니다. OpenAI 공식 문서는 Codex CLI를 원격 또는 헤드리스 환경에서 실행하거나 로컬 네트워크가 로그인 뒤 돌아오는 localhost 콜백을 막을 때 이 방식을 사용하라고 안내합니다.
일반
codex login
은 브라우저 기반 흐름과 로컬 콜백을 이용할 수 있는 환경에 맞습니다. 반면 기기 코드 방식은 운영체제 셸에서 로그인 요청을 시작합니다.
브라우저에서 출력된 링크를 열어 계정 로그인과 일회용 코드 입력을 마칩니다. 모든 데스크톱 로그인에 필수인 방식은 아닙니다.
완료 기준은 브라우저 승인 화면이 아니라 터미널의 상태 확인입니다. 같은 운영체제 사용자로 돌아와
codex login status
가 활성 인증 방식을 보여주는지 봅니다. 저장소 열기, 파일 수정, 모델 호출은 첫 로그인 완료 기준에 포함하지 않습니다.
시작 전에 확인할 것
먼저
codex login --help
에서
--device-auth
와
status
가 보이는지 확인합니다. 이 명령은 운영체제의 Bash, Zsh, PowerShell 같은 셸에서 실행합니다. Codex 대화형 입력창에 넣는 슬래시 명령이 아닙니다.
기기 코드 로그인은 계정에서도 허용해야 합니다. 개인 계정은 ChatGPT 보안 설정에서 device code login을 켭니다.
조직 Workspace를 사용한다면 Workspace 관리자가 ChatGPT Workspace 권한에서 이를 허용해야 합니다. 공식 문서는 이 방식을 베타로 표시하지만 이 글의 출처만으로 플랜·지역·언어별 제공 조건까지 확정할 수는 없습니다. 현재 계정 UI와 조직 정책을 확인합니다.
브라우저는 OpenAI 계정에 로그인할 수 있는 신뢰된 기기에서 준비합니다. 터미널에 표시될 링크와 일회용 코드는 인증 절차에만 사용합니다. 화면 공유, AI 프롬프트, 이슈, 메신저, 공개 로그에는 남기지 않습니다.
--device-auth로 처음 로그인하는 순서
1. 설치된 CLI에서 로그인 옵션을 확인합니다
원격 환경의 운영체제 셸에서 아래 명령을 실행합니다.
codex login --help
출력에서
--device-auth
와
status
를 확인합니다. 현재 설치본에 옵션이 없다면 임의의 대체 플래그를 만들지 말고 공식 문서와 설치된 버전의 도움말 차이를 먼저 확인합니다.
2. 계정에서 기기 코드 로그인을 허용합니다
개인 계정은 ChatGPT 보안 설정에서 device code login을 켭니다. Workspace 계정은 사용자가 임의로 우회하지 않고 관리자에게 ChatGPT Workspace 권한의 현재 상태를 확인받습니다.
이 설정은 기기 코드 로그인 허용 범위입니다. API 키 인증, access token 인증, 일반 브라우저 콜백 로그인이나 조직의 다른 보안 정책을 한꺼번에 바꾸는 설정으로 해석하지 않습니다.
3. 운영체제 셸에서 기기 코드 로그인을 시작합니다
아래 명령을 실행합니다.
codex login --device-auth
터미널이 브라우저에서 열 링크와 일회용 코드를 안내하면 다음 단계로 넘어갑니다. 링크나 코드를 이 글의 검증 프롬프트에 붙이지 않습니다. 현재 세션에서 직접 실행한 요청인지 먼저 대조합니다.
4. 브라우저에서 로그인하고 일회용 코드를 입력합니다
터미널이 안내한 링크를 신뢰된 브라우저에서 엽니다. 연결하려는 ChatGPT 계정으로 로그인한 뒤 터미널에 표시된 일회용 코드를 브라우저의 공식 입력 화면에 직접 넣습니다.
Workspace를 여러 개 쓴다면 브라우저에 표시된 계정과 Workspace가 의도한 대상인지 사람이 확인합니다. 출처가 불분명한 사람이 보낸 코드나 본인이 시작하지 않은 승인 요청은 처리하지 않습니다.
5. 터미널로 돌아와 로그인 흐름이 끝났는지 봅니다
브라우저 단계를 마치면
codex login --device-auth
를 실행한 터미널로 돌아옵니다. 로그인 요청을 시작한 운영체제 사용자와 상태를 확인할 사용자가 같은지 점검합니다.
이 단계에서는
~/.codex/auth.json
을 열거나 복사하지 않습니다. 공식 문서는 이 파일에 access token이 들어갈 수 있으므로 비밀번호처럼 다루라고 경고합니다. 이 글의 첫 로그인 흐름에는 인증 캐시 복사, SSH 전송, 컨테이너 이미지 포함이 없습니다.
6. 활성 인증 방식을 확인합니다
같은 운영체제 사용자로 아래 명령을 실행합니다.
codex login status
공식 문서에 따르면 이 명령은 활성 인증 방식을 보여줍니다. 브라우저에서 완료 화면을 봤더라도 터미널 상태가 확인되지 않으면 첫 로그인을 완료로 기록하지 않습니다. 실제 출력에 없는 계정명, Workspace, 권한 범위는 추정하지 않습니다.
그대로 복사해 쓸 로그인 검증 프롬프트
목표: 원격 또는 헤드리스 환경의 Codex CLI 기기 코드 로그인이 완료됐는지 비밀값 없이 점검한다.
허용 입력: codex --version 출력, codex login --help에서 옵션 이름만 남긴 결과, 계정 UI에서 device code login 허용 여부, codex login status의 활성 인증 방식 문구.
제외 입력: 브라우저 링크, 일회용 코드, 비밀번호, API 키, access token, 쿠키, ~/.codex/auth.json 내용, 고객 데이터, 저장소 파일.
출력 형식: 환경 적합성 | 계정 설정 | CLI 옵션 인식 | 브라우저 승인 여부 | 터미널 상태 | 미확인 사항의 6개 항목으로 작성한다.
완료 기준: 같은 운영체제 사용자에서 codex login status가 활성 인증 방식을 보여준다. 일회용 코드·토큰·인증 파일은 출력과 기록에 남지 않는다.
추정 금지: 실제 출력에 없는 계정명, Workspace, 플랜, 지역, 권한, 코드 만료 원인, 네트워크 장애 원인을 만들어 내지 않는다.
승인 지점: 브라우저에서 계정 로그인과 일회용 코드 입력은 사람이 직접 확인해 승인한다. Workspace 권한 변경과 다른 인증 방식 전환은 관리자 또는 계정 소유자의 별도 승인 뒤 진행한다.
이 프롬프트는 로그인 상태를 정리할 뿐 인증을 대신 수행하지 않습니다. 일회용 코드나 인증 파일을 모델에 제공하지 않아도 완료 여부를 판단할 수 있도록 입력 범위를 제한합니다.
실전 활용 팁
로그인과 첫 작업을 분리하면 실패 원인을 찾기 쉽습니다.
codex login --help
로 설치 표면을 확인하고 계정 설정을 점검한 뒤, 기기 코드 로그인과
codex login status
까지만 마칩니다. 저장소 접근이나 모델 요청은 인증이 확인된 다음 별도 작업으로 시작합니다.
팀에서 원격 개발 환경을 운영한다면 검증 기록에는 비밀값 대신 다음 네 항목만 남깁니다. 실행한 CLI 버전, 기기 코드 허용 주체, 브라우저 승인 완료 여부,
codex login status
가 보여준 인증 방식입니다. 링크·코드·token·인증 파일 경로의 실제 내용은 기록하지 않습니다.
일반 브라우저 로그인이 정상 동작하는 로컬 환경에서는 기기 코드 방식을 억지로 선택할 필요가 없습니다. 이 기능은 브라우저가 없는 환경과 localhost 콜백 차단 문제를 해결하는 별도 진입로로 이해하면 됩니다.
주의할 점
codex login --device-auth
는 운영체제 셸 명령입니다. Codex 대화형 입력창이나 AI 프롬프트에 쓰지 않습니다. 명령 플래그의 두 하이픈을 en dash로 바꾸면 실행되지 않으므로
--device-auth
를 그대로 유지합니다.
공식 문서는 개인 계정의 ChatGPT 보안 설정과 Workspace 관리자의 ChatGPT Workspace 권한을 구분합니다. 개인 사용자가 조직 정책을 우회하거나, 활동 설정·API 키·access token 권한을 같은 설정으로 보지 않습니다.
일회용 코드는 계정 비밀번호와 같은 문자열은 아니지만 승인 흐름을 연결합니다. 본인이 시작한 요청의 공식 브라우저 화면에만 입력하고 공유하지 않습니다.
~/.codex/auth.json
은 access token을 포함할 수 있으므로 Git에 커밋하거나 티켓·채팅에 붙이지 않습니다.
공식 문서에는 인증 캐시 복사와 SSH 포트 포워딩 같은 fallback도 별도로 나옵니다. 이 글은 첫 번째 권장 경로인 기기 코드 인증만 다룹니다.
device code login을 사용할 수 없다고 해서 인증 파일 복사나 네트워크 변경을 즉시 실행하지 않습니다. 해당 절차의 보안 검토와 승인을 따로 진행합니다.
자주 묻는 질문
일반 codex login 대신 언제 --device-auth를 쓰나요?
Codex CLI를 원격 또는 헤드리스 환경에서 실행하거나, 네트워크가 브라우저 로그인 뒤 localhost 콜백을 막을 때 사용합니다. 일반 브라우저 흐름이 정상인 모든 로컬 환경에 필수인 방식은 아닙니다.
개인 계정과 Workspace 계정의 준비가 같은가요?
아닙니다. 개인 계정은 ChatGPT 보안 설정에서 device code login을 켭니다.
Workspace는 관리자가 ChatGPT Workspace 권한에서 허용 상태를 관리합니다. 조직 계정 사용자는 현재 정책을 관리자에게 확인합니다.
일회용 코드나 auth.json을 AI에게 보여줘야 하나요?
그럴 필요가 없습니다. 일회용 코드는 공식 브라우저 입력 화면에 직접 넣습니다.
~/.codex/auth.json
은 읽거나 복사하지 않습니다. 상태 검증에는
codex login status
의 비밀값 없는 인증 방식 문구면 충분합니다.
브라우저에서 완료됐으면 로그인이 끝난 것 아닌가요?
터미널에서도 확인해야 합니다. 같은 운영체제 사용자로
codex login status
를 실행해 활성 인증 방식이 표시되는지 확인한 뒤 완료로 기록합니다.
출처
공식 문서에서 확인한 범위는 원격·헤드리스 환경, localhost 콜백 차단, device code login 활성화 주체,
codex login --device-auth
, 브라우저의 일회용 코드 입력,
codex login status
,
auth.json
보안 경고입니다. 플랜·지역·언어별 제공 조건은 이 출처만으로 확정하지 않았습니다.
마무리
원격 환경의 Codex CLI 첫 로그인은 셸에서 요청하고 브라우저에서 승인한 뒤, 다시 셸에서 확인하는 흐름입니다. 계정 설정에서 기기 코드 로그인을 허용한 다음
codex login --device-auth
를 실행하고 공식 브라우저 화면에서 일회용 코드를 입력합니다.
마지막으로
codex login status
가 활성 인증 방식을 보여주는지 확인합니다. 링크·일회용 코드·인증 파일을 공유하지 않고 여기까지 통과했다면 첫 연결의 완료 기준을 충족합니다.
