SSH-Agent 상시 유지하기

Published by

on


Ubuntu에서 개발을 하다 보면, 터미널을 열 때마다 ssh-add를 다시 실행해야 해서 번거로운 순간이 생긴다. Git이나 원격 서버에 접속할 때마다 비밀번호를 반복 입력하는 일은 단순한 작업 같지만, 개발 흐름을 끊어버리기 충분하다. 이 문제를 해결하려면 ssh-agent를 항상 실행된 상태로 유지하는 설정이 필요하다.

여기서는 Ubuntu 환경에서 ssh-agent를 지속적으로 유지시키는 방법을 소개한다. 한 번 설정하면 재부팅 이후에도 자연스럽게 ssh-agent가 살아 있기 때문에, 더 이상 반복적인 인증 작업에 방해받지 않게 된다.

Ubuntu SSH Agent 이미지, 자물쇠와 컴퓨터를 연결하는 키 아이콘이 포함되어 있음.

ssh-agent를 상시 유지하는 가장 좋은 방식: systemd User Service

Ubuntu는 서비스 실행을 systemd로 관리한다. ssh-agent를 systemd user 서비스로 등록하면 로그인 시 자동으로 실행되며, 터미널에서도 동일한 소켓을 공유하게 된다.

먼저 user-level systemd 디렉터리를 만든다.

mkdir -p ~/.config/systemd/user

이제 서비스를 정의하는 파일을 만든다.

# ~/.config/systemd/user/ssh-agent.service
[Unit]
Description=SSH Agent

[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK

[Install]
WantedBy=default.target

이 서비스는 ssh-agent를 하나만 실행하고, 모든 터미널이 동일한 소켓을 공유할 수 있게 해준다.

서비스를 활성화한다.

systemctl --user enable ssh-agent
systemctl --user start ssh-agent

이제 ssh-agent는 백그라운드에서 항상 실행된다.


SSH_AUTH_SOCK 환경 변수 설정

ssh-agent와 터미널을 연결하기 위해, 환경 변수로 소켓 파일 위치를 지정해야 한다.

bash 또는 zsh 설정 파일에 아래 라인을 추가한다.

export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"

이제 새 터미널을 열어도 자동으로 ssh-agent에 연결된다.


private 인증키를 agent에 등록하기

이제 키만 한 번 등록해주면 된다.

ssh-add ~/.ssh/id_rsa

이제부터는 재부팅 후에도 ssh-agent가 살아 있으므로 다시 ssh-add를 입력할 필요가 없다.


마무리

ssh-agent는 작지만 개발자의 작업 흐름을 유연하게 해주는 중요한 도구다. systemd에 등록해두면 Ubuntu 환경에서 ssh-agent를 깔끔하게 유지할 수 있고, 반복적인 인증 작업을 크게 줄일 수 있다. 특히 서버 환경이나 장기간 유지되는 개발 환경에서 매우 유용하다.

댓글 남기기

오픈바이브 | oftenvibe.com에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기