ETCMac OS

MacOS에서 ssh-agent 사용하기

ssh로 서버로 접근 할 때 보통 ID/PW 방식을 많이 사용한다. 하지만 요즘은 ID/PW보다 좀더 보안에 좋은 key를 이용한다.
AWS의 경우에는 기본적으로 서버에 접근하기 위해서 ssh key 를 사용하는데 서버를 private network에 두게 되면 VPN을 이용해서 AWS VPC 내부로 접속을 하거나 별도의 베스천 서버를 두어서 연결을 해야 한다. AWS VPC를 VPN으로 연결하였다면 굳이 ssh-agent를 이용하지 않아도 된다. 하지만 베스천 서버와 같이 중간 다리 역활을 하는 서버를 거쳐서 내부 서버에 접근 해야 한다면 내부 서버에 접근하기 위한 키를 어떻게 해야 할지 고민일 것이다.

베스천서버에 키를 둔다면 베스천서버에 접근 가능한 모든 사람들은 내부 private network 에 존재하는 서버에 모두 접근이 가능할 것이기 때문이다. 이런경우 ssh-agent를 통해서 로컬에 key를 보관하고 원격지의 컴퓨터에서 또 다시 원격지의 컴퓨터에 접속을 할 때 키를 전달 한는 방식을 이용하면 편리 하다.

ssh-agent 에 키를 미리 등록하고 이를 이용해서 서버에 접근 하는 것인데, 여기서 agent의 키를 전달 할 수 있도록 허용하면 원격지의 서버에서도 키파일 없이(원격지에 키파일을 보관할 필요가 없다.) 접근이 가능하다

사용하는 명령은 아래와 같다.

ssh-add -K '키파일 위치'

매우 간단한 명령이다.
여기서 -K 옵션은 mac에서만 사용 가능한 명령인데, 이는 맥의 키체인에 ssh key를 등록 하는 것이다.
만약 -K 옵션을 주지 않는다면 맥을 재실행 할 때 마다 키 파일을 추가 해야 한다.

그리고 ~/.ssh/config 파일을 만들어서 (있으면 해당 파일을 열어서 추가하자) 아래 내용을 추가 하면 된다.

Host *
    AddKeysToAgent yes
    UseKeychain yes
    ForwardAgent yes

위 설정까지 모두 마췄다면 맥을 재부팅 하여도 별도의 ssh-agent의 실행 없이 사용이 가능하다.

잘못된 정보가 있다면 댓글을 통해 알려주세요.