반응형
Vault OTP 계정과 로컬 계정을 함께 사용하는 SSH 인증 구성하는 방법
HashiCorp Vault 기반 OTP 계정 접속과 기존 로컬 Unix 계정 접속을 동시에 지원하기 위한 PAM 기반 SSH 인증 구성 방법입니다.
인증 동작 방식
Vault OTP 계정 로그인 (예: vault_user1)
vault_user1 + OTP
└─ pam_exec(vault-ssh-helper) → 성공
└─ sufficient → 로그인 허용
로컬 계정 로그인 (예: local_user1)
local_user1 + local password
└─ pam_exec(vault-ssh-helper) → 실패 (OTP 아님)
└─ sufficient 무시
└─ common-auth (pam_unix) → 성공 → 로그인 허용
PAM 설정 (/etc/pam.d/sshd)
설정 파일 백업
sudo cp /etc/pam.d/sshd /etc/pam.d/sshd_$(date +%Y%m%d_%H%M%S)
PAM 인증 설정 수정
sudo vim /etc/pam.d/sshd
# Vault OTP 인증 시도
# 성공하면 sufficient 조건으로 이후 auth 단계 건너뜀
auth sufficient pam_exec.so quiet expose_authtok log=/var/log/vault-ssh.log /usr/local/bin/vault-ssh-helper -dev -config=/etc/vault-ssh-helper.d/config.hcl
# pam_exec 실패 시(OTP 아님) 로컬 인증으로 자연스럽게 fallback
auth optional pam_unix.so use_first_pass nodelay
# Vault 인증 실패 시 로컬 Unix 계정 인증 수행
@include common-auth
...
SSH 데몬 설정 확인
PAM 인증이 정상 동작하려면 sshd_config 설정이 반드시 필요하다.
sudo grep -E "PasswordAuthentication|KbdInteractive|UsePAM" /etc/ssh/sshd_config | grep -v "^#"
728x90
AllowUsers - 접속 가능한 사용자 명시 제한
권장 설정
AllowUsers vault_user1 vault_user2 local_user1 local_user2
또는 그룹 기반
AllowGroups vault-ssh-users local-ssh-users
SSH 서비스 재시작
sudo systemctl restart ssh
접속 테스트
Vault OTP 계정 접속
Vault에서 OTP 발급
$ vault write ssh/creds/otp_key_role ip=192.168.10.102
Key Value
--- -----
lease_id ssh/creds/otp_key_role/HbRXT2KMipS0Dz71FfTA1xbt
lease_duration 768h
lease_renewable false
ip 192.168.10.102
key b336d9fa-3919-dbf8-fdff-5c6a4c040f19
key_type otp
port 22
username vault_user1
SSH 접속(key[b336d9fa-3919-dbf8-fdff-5c6a4c040f19] 입력)
ssh vault_user1@192.168.0.111
로컬 계정 접속
SSH 접속(로컬 비밀번호 입력)
ssh local_user1@192.168.0.111
728x90
반응형
'리눅스' 카테고리의 다른 글
| Backlog(백로그)란? (0) | 2026.02.20 |
|---|---|
| 도커 컨테이너를 이용해서 Let's Encrypt 인증서를 DNS-01 챌린지로 발급받고 자동 갱신하는 방법 (0) | 2026.02.11 |
| HashiCorp Vault SSH OTP 설정 및 인증 접속 방법 (0) | 2026.02.10 |
| 우분투 24.04에서 3대의 노드를 사용하여 Consul 백엔드 기반의 Vault HA 클러스터를 구성하는 방법 (0) | 2026.02.10 |
| 우분투 24.04에서 TCP Wrappers를 사용하는 sshd 서비스를 접근 제어하는 방법 (0) | 2026.02.03 |