## 소개
**"서버 컨테이너 안에서 OAuth 로그인하려면 어떻게 해야 하지?"**
OpenClaw를 우분투 서버에서 운영 중인데, OpenAI Codex를 쓰고 싶어서 OAuth 인증을 붙여야 했어요. 근데 컨테이너 안에서 OAuth 로그인하는 게 생각보다 까다로웠어요.
브라우저가 없는 서버 환경에서 어떻게 OAuth 인증을 완료할 수 있을지 고민하다가 SSH 포트포워딩으로 해결했습니다.
---
## 진행 방법
### 1. SSH 포트포워딩으로 서버 접속
로컬 PC PowerShell에서 아래 명령으로 접속했어요.
powershell
ssh -L 1455:localhost:1455 -p <YOUR_SSH_PORT> <USERNAME>@<YOUR_SERVER>
**설명:**
- 로컬 PC의 1455 포트를
- SSH 터널로
- 서버의 localhost:1455에 연결
---
### 2. OpenClaw 컨테이너 안으로 들어가기
컨테이너 쉘로 진입해서 작업했어요.
bash
docker exec -it <컨테이너명> sh
---
### 3. OpenAI Codex OAuth 로그인 실행
컨테이너 안에서 아래 명령 실행:
bash
openclaw models auth login --provider openai-codex
실행하면 터미널에 OAuth URL이 출력되고, 아래 입력 대기 상태가 나타나요.
Paste the redirect URL
---
### 4. 로컬 브라우저에서 OAuth 로그인
터미널에 출력된 URL을 로컬 PC 브라우저에서 열었어요.
로그인 완료 후 브라우저 주소는 아래 형태가 됩니다:
http://localhost:1455/auth/callback?code=...&state=...
브라우저에는 에러 페이지가 떴어요.
ERR_EMPTY_RESPONSE
**중요:** 하지만 이 상태에서도 주소창의 최종 URL 전체를 복사해서 계속 진행할 수 있어요!
---
### 5. redirect URL을 터미널에 붙여넣기
브라우저 주소창의 최종 URL 전체를 복사해서
서버 터미널의 Paste the redirect URL 입력칸에 붙여넣고 엔터를 눌렀어요.
text
http://localhost:1455/auth/callback?code=...&state=...
이렇게 해서 OAuth 인증이 완료됐어요.
---
### 6. 인증 상태 확인
아래 명령으로 상태를 확인했어요.
bash
openclaw models status
확인 결과:
- openai-codex OAuth 인증이 정상 등록됨
- 상태가 ok
- 만료일까지 표시됨
---
### 7. 기본 모델을 OpenAI Codex로 변경
OAuth 인증 후에도 기본 모델은 Claude로 남아 있었기 때문에 아래 명령으로 변경했어요.
bash
openclaw models set openai-codex/gpt-5.4
---
### 8. Gateway 재시작
설정 적용을 위해 재시작했어요.
bash
openclaw gateway restart
---
## 결과와 배운 점
### 결과
- OAuth 인증 성공
- 기본 모델 OpenAI Codex로 변경 완료
- OpenClaw에서 openai-codex 사용 가능
###
꿀팁
1. 브라우저에 ERR_EMPTY_RESPONSE 나와도 당황 하지 마세요
- 브라우저에 에러가 떠도 URL만 제대로 복사하면 됩니다.
2. SSH 포트포워딩이 핵심
- -L 로컬포트:localhost:원격포트 옵션으로 로컬 브라우저와 서버를 연결할 수 있어요.
3. 컨테이너 안에서 직접 설정 변경 가능
- docker exec -it <컨테이너명> sh로 들어가서 openclaw config set 명령으로 설정을 바꿀 수 있어요.
###
시행착오
- 처음에 OAuth URL을 그냥 서버에서 열어보려다 실패 → 로컬 브라우저에서 열어야 함
- redirect URL을 제대로 복사 안 해서 몇 번 실패 → 전체 URL을 복사해야 함