ssh-add 명령어로 키 암호(passphrase)를 추가하려고 할 때 "인증 에이전트에 대한 연결을 열 수 없습니다(Could not open a connection to your authentication agent)"라는 오류 메시지가 나타날 수 있습니다. 이 문제는 대부분 ssh-agent가 올바르게 할당되지 않아서 발생하며, 그래서인지 다소 특이한 상황에서 문제가 되곤 합니다.
예를 들어, Raspbian이 구동 중인 라즈베리파이, 커맨드 프롬프트만 따로 빼낸 임베디드 라우터, 혹은 안드로이드 리눅스 터미널에서 이 오류를 접할 수 있습니다. 다행히도 기기 종류나 사용 중인 셸과 무관하게 명령어 한두 개만으로 손쉽게 해결할 수 있으며, 복잡한 설정을 만질 필요는 전혀 없습니다.
인증 에이전트 오류 해결 방법
이미 ssh-agent가 실행 중이라면 다시 시작할 필요는 없습니다. 대신 명령줄에서 ssh-add를 실행해 키 암호를 추가해 보세요. 그러면 아마 "인증 에이전트에 대한 연결을 열 수 없습니다"라는 오류 메시지만 출력되고 다른 정보는 거의 표시되지 않을 것입니다. 이 오류는 별다른 힌트를 주지 않기 때문에 많은 사용자가 올바른 해결책을 찾기까지 한참을 헤매기도 합니다.
1. 네트워크 연결 상태 확인
먼저, 다소 사소하게 느껴질 수 있지만 인터넷이나 사용 중인 네트워크에 실제로 연결되어 있는지 확인하세요. 단순히 네트워크가 끊겨 있는 것일 가능성도 있습니다. 특히 이더넷이나 Wi-Fi가 아닌 사설 네트워크를 통해서만 SSH를 사용하는 비표준 LAN 장비를 다룰 때 이런 문제가 자주 발생합니다.
2. 키 파일 경로를 지정해 ssh-add 실행
연결에 문제가 없음을 확인했다면, ssh-add ~/.ssh/id_rsa처럼 키 파일 이름을 직접 지정해 실행해 보세요. 파일 이름은 실제로 추가하려는 키의 이름으로 바꿔 주어야 합니다. 예시에서는 기본값인 ~/.ssh/id_rsa를 사용했지만, 실제 환경에서는 이름이 다를 수 있습니다. "Enter passphrase(암호 입력)" 프롬프트가 표시되며, 리눅스 가상 터미널과 마찬가지로 입력 내용은 화면에 나타나지 않으니 참고하세요. 암호가 정상적으로 승인되면 더 이상 작업할 필요가 없습니다.
3. ssh-agent 재할당
그런데도 동일한 오류가 반복된다면 에이전트를 완전히 재할당해야 합니다. 일반 셸을 사용 중이라면 ssh-agent /bin/sh를 실행한 뒤 ssh-add ~/.ssh/id_rsa를 입력하세요. 역시 키 이름은 실제 이름으로 교체해야 합니다. 이 시점에서 암호 입력 프롬프트가 나타날 것입니다. 순수 bash 사용자라면 일부 리눅스 커뮤니티에서 "배시즘(bashisms)"이라 부르는 요소가 들어가는 것을 괜찮아하는 한 ssh-agent bash를 실행한 후 ssh-add 명령어를 쓰는 방법도 있습니다. 대부분의 시스템에서는 root 계정과 일반 계정 모두 PATH에 bash가 포함되어 있어 별도의 작업이 필요하지 않습니다.
4. fish-shell 사용자
fish-shell 사용자는 ssh-agent /usr/bin/fish를 실행한 후 ssh-add ~/.ssh/id_rsa를 시도해 보세요. 반면 위의 방법은 Bourne 셸, bash 또는 Almquist 셸을 쓰는 경우 대부분 잘 작동합니다. 지금 정상적으로 작동하고 있다면 더 이상 할 일이 없습니다. 다만 C-Shell이나 tcsh 사용자는 이 단계에서 문제가 생길 수 있습니다.
5. C-Shell / tcsh 사용자
이러한 경우 eval `ssh-agent -c`를 실행한 뒤 ssh-add ~/.ssh/id_rsa를 입력해 셸 에이전트를 등록하세요. tcsh는 다른 셸과 조금 다른 방식으로 동작하기 때문입니다. 물론 대부분의 임베디드 시스템에는 tcsh가 아예 설치되어 있지 않습니다. 어느 쪽이든 명령어만 정확히 입력했다면 이 시점에서 정상적인 SSH 연결을 사용할 수 있습니다. 실수를 하더라도 위 명령어들은 파괴적이지 않으므로 얼마든지 다시 실행해도 안전합니다.
마무리
환경 설정에 따라서는 재시작 후 SSH에 로그인할 때마다 이 과정을 반복해야 할 수도 있습니다. 하지만 어떤 경우든 명령어 한 줄이면 충분히 해결되므로, 이후 불필요한 시행착오를 겪을 걱정은 없습니다.
저자 소개

케빈 애로우즈(Kevin Arrows)
케빈 애로우즈는 10년 이상의 업계 경력을 지닌 베테랑 기술 전문가입니다. 마이크로소프트 공인 기술 전문가(MCTS) 자격증을 보유하고 있으며, 최신 기술 동향을 꾸준히 학습하는 데 남다른 열정을 가지고 있습니다. 소프트웨어 개발, 사이버 보안, 클라우드 컴퓨팅 등 다양한 기술 분야에 걸쳐 폭넓게 집필해 왔으며, 그의 기여는 동료들에게 널리 인정받고 있습니다. 특히 복잡한 기술 개념을 명확하고 간결하게 설명하는 능력으로 높은 평가를 받고 있습니다.