본문 바로가기

리눅스

[draft] HashiCorp Vault SSH Helper 설치 및 연동하는 방법

HashiCorp Vault SSH Helper 설치 및 연동하는 방법

Vault SSH Helper를 사용하면 Vault를 통해 SSH 키를 동적으로 관리하고 사용자 SSH 로그인 세션을 중앙에서 제어할 수 있다.

Vault SSH Helper(vault-ssh-helper) 를 Linux 서버에 설치하고 OpenSSH와 연동하는 방법입니다.

테스트 환경

운영체제 정보

$ lsb_release -d
Description:    Ubuntu 22.04.2 LTS

1. Vault SSH Helper 설치

Vault SSH Helper는 GitHub 릴리스 또는 HashiCorp 공식 릴리스 페이지에서 받을 수 있다.

 

Vault SSH Helper 다운로드

curl -LO https://github.com/hashicorp/vault-ssh-helper/releases/download/v<version>/vault-ssh-helper_<version>_<platform>_amd64.zip
curl -LO https://releases.hashicorp.com/vault-ssh-helper/0.2.1/vault-ssh-helper_0.2.1_linux_amd64.zip

압축 해제 및 설치

  • unzip 설치
apt-get update
apt-get install -y unzip
  • 압축 해제
unzip vault-ssh-helper_<version>_<platform>_amd64.zip
unzip vault-ssh-helper_0.2.1_linux_amd64.zip
$ unzip vault-ssh-helper_0.2.1_linux_amd64.zip
Archive:  vault-ssh-helper_0.2.1_linux_amd64.zip
  inflating: vault-ssh-helper

실행 파일 이동

  • Vault SSH Helper를 보통 /usr/local/bin 또는 /usr/bin과 같은 시스템 PATH에 있는 디렉토리로 이동시킵니다.
mv vault-ssh-helper /usr/local/bin/

버전 확인

$ vault-ssh-helper -v
vault-ssh-helper v0.2.1

2. Vault SSH Helper 구성

Vault SSH 플러그인을 구성해야 합니다. 보통 config.hcl 파일을 사용하여 구성합니다.

구성 파일에는 Vault 서버의 주소, 포트, 토큰 등이 포함됩니다. 구체적인 구성 방법은 Vault-SSH 플러그인의 문서를 참조하시기 바랍니다.

sudo mkdir -p /etc/vault-ssh-helper.d/
sudo tee /etc/vault-ssh-helper.d/config.hcl <<EOF
vault_addr = "http://vault:8200"
tls_skip_verify = false
ssh_mount_point = "ssh"
allowed_roles = "*"
EOF

3. SSH 서버 설정 연동

SSH 서버의 구성 파일을 편집하여 Vault SSH 플러그인을 사용하도록 설정합니다.

/etc/ssh/sshd_config 또는 /etc/sshd_config 파일을 편집합니다.

AuthorizedKeysCommand와 AuthorizedKeysCommandUser 설정을 추가합니다.

AuthorizedKeysCommand /path/to/vault-ssh-helper
AuthorizedKeysCommandUser <user>

sshd_config 백업

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig

sshd_config 수정

echo "AuthorizedKeysCommand /usr/local/bin/vault-ssh-helper" | sudo tee -a /etc/ssh/sshd_config
echo "AuthorizedKeysCommandUser ubuntu" | sudo tee -a /etc/ssh/sshd_config

4. SSH 서버 재시작

SSH 서버를 재시작하여 구성 변경 사항을 적용합니다.

Vault-SSH 플러그인을 설치하고 SSH 서버와 통합하는 방법에 대해 설명했습니다. 이를 통해 SSH 인증을 Vault와 연동하여 중앙 집중식 보안 및 액세스 제어를 구현할 수 있습니다.

sudo systemctl restart ssh

5. Vault SSH Helper 동작 검증

실제 SSH 접속 전에 Vault 연동 상태를 반드시 검증한다.

vault-ssh-helper -verify-only -dev -config /etc/vault-ssh-helper.d/config.hcl
$ vault-ssh-helper -verify-only -dev -config /etc/vault-ssh-helper.d/config.hcl
2023/06/01 04:51:56 ==> WARNING: Dev mode is enabled!
2023/06/01 04:51:56 [INFO] using SSH mount point: ssh
2023/06/01 04:51:56 [INFO] using namespace: 
2023/06/01 04:51:56 [INFO] vault-ssh-helper verification successful!

 

참고URL

- vault-ssh-helper(releases.hashicorp.com) : https://releases.hashicorp.com/vault-ssh-helper/