Problem
보통 편의성과 보안성 모두를 위해 ssh는 PKA(Public Key Authentication) 기반으로 운영하는 경우가 많습니다. 특히나 AWS, Azure, GCP 등의 퍼블릭 클라우드 서비스들은 외부에 22 와 같은 ssh 포트를 오픈해야하는 필요성이 있기 때문에(ACL이 있던 없던) 당연히 PKA를 기본 인증 체제로 사용합니다. (패스워드는 되도록이면 사용하지 말라고 가이드하고 있죠.)
저의 일부 분석 환경은 퍼블릭 클라우드 서비스 중 하나인 digitalocean에 구축되어 있습니다. 간혹 여러 도구들을 이용하여 스캐닝 시 ssh 연결을 여러번 붙어야하는 경우가 있는데, 이 때 매번 passphrase를 요구하고 있어 은근히 불편합니다 😭
ssh user@host
Enter passphrase for key '/Users/your_username/.ssh/id_rsa':
사실 ssh를 직접 붙어서 쓰는거라면 그냥 매번 passphrase를 입력해주는 것도 좋지만, 때로는 불편하기 때문에 passphrase를 묻지 않았으면 하는 바램도 있습니다. 다만 passphrase 값은 PKA에서 필수적으로 쓰이는 값이기 때문에 입력 과정을 건너띌 순 없겠지요.
Solution
다만 ssh-agent를 통해 미리 passphrase 값을 등록해두고 재사용하도록 하여서 해결하는 방법이 있습니다. 우선 ssh-agent가 실행되지 않았을 경우도 있으니 실행합니다.
ssh-agent -s
PKA 기반의 ssh를 구성할 때 만든 키를 ssh-add로 agent에 등록해줍니다.
ssh-add ~/.ssh/id_rsa
-l 옵션을 통해 확인하면
ssh-add -l
3072 SHA256:FCo4hf.....snip....MacBookPro.local (RSA)
이제부터 ssh 접근 시 id_rsa 키를 이용하는 경우 passphrase를 묻지 않고 바로 접근하게 됩니다.