macos에서 bitwarden agent 적용하기

macos에서 bitwarden agent 적용하기

저는 몇 년전 부터 비밀번호 관리자로 bitwarden을 사용하고 있습니다.

정확히는 vaultwarden을 사용하고 있습니다.

그러다가 언젠가부터 bitwarden에 ssh agent 기능이 들어왔고, vaultwarden도 관련 기능이 구현되었습니다.

기본적인 설정방법은 https://bitwarden.com/help/ssh-agent/ 공식홈페이지에 아주 잘 나와있고, 작동도 잘되지만, 특정 부분에서 이슈가 있어 그 부분을 공유하고자 합니다.

기본적인 사용 방법

기본적으로 ssh 사용법과 동일합니다.

타겟 머신의 접속하고자 하는 계정의 ~/.ssh/authorized_keys 에 공개키를 등록하고 접속 PC에서 -i 옵션으로 개인키 경로를 지정하면 됩니다.

bitwarden ssh agent를 사용하면 bitwarden에 개인키를 저장해두고, ssh -i 옵션에 공개키로 그 개인키를 찾아가게 만들 수 있습니다.

공식홈페이지에 나와있는 가이드를 잘 따라 했다면, $SSH_AUTH_SOCK env 값으로 bitwarden의 ssh-agent socket를 가지고 있을 것입니다.

Issue

터미널을 켜서 ssh 명령어를 사용하는 경우에는 크게 문제가 없지만..

예를들어 git client나 ssh를 사용하는 것들을 macos Dock에 등록해놓고 사용한다면

스크린샷 2025-11-17 23.04.43.png

스크린샷 2025-11-17 23.08.18.png

위 이미지처럼 기본 소켓이 들어가있게 됩니다.

스크린샷 2025-11-17 23.09.44.png

정상적으로 bitwarden의 소켓을 바라보면 정상적으로 bitwarden이 관리하는 key 목록을 볼 수 있습니다.

해결방법

해결 방법은 간단합니다.

터미널에서는 되는 이유는 shell profile에 등록했기 때문이므로 똑같이 Dock이 켜질 때 환경변수를 가져가도록 만들면 됩니다.

스크립트 작성

경로: ~/.config/Bitwarden-SSH-Setup

#!/bin/sh

SOCK_PATH="/Users/{사용자명}/Library/Containers/com.bitwarden.desktop/Data/.bitwarden-ssh-agent.sock"

for i in $(seq 1 30); do
    if [ -S "$SOCK_PATH" ]; then
        launchctl setenv SSH_AUTH_SOCK "$SOCK_PATH"
        killall Dock
        killall Spotlight
        exit 0
    fi
    sleep 1
done

launchctl setenv SSH_AUTH_SOCK "$SOCK_PATH"

chmod +x ~/.config/Bitwarden-SSH-Setup 실행권한을 추가해줍니다.

plist 생성

경로: ~/Library/LaunchAgents/environment.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>my.environment</string>
  <key>ProgramArguments</key>
  <array>
    // 예시 <string>/Users/userA/.config/Bitwarden-SSH-Setup</string>
    <string>{위 스크립트 경로}</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

스크린샷 2025-11-17 23.17.48.png

plist까지 만들고 나면, 자동으로 위 메세지가 뜨게 됩니다.

설정 > 일반 > 로그인 항목 및 확장 프로그램에 앱 백그라운드 활동에도 등록되있는 걸 확인할 수 있습니다.

스크린샷 2025-11-17 23.48.22.png

재부팅하면, Dock 에서 실행한 프로그램도 의도대로 값이 들어온것을 볼 수 있습니다.

이제 ssh key를 모두 bitwarden에 저장해놓고 편하게 접속 할 수 있게 되었습니다.