OpenSSH 에는 ssh-agent 라는 authentication agent가 있어서 pass phrase 를 입력한 private key 를 메모리에 캐싱해 줍니다.

이 덕분에 한 번 개인 키를 입력했으면 다시 입력할 필요없이 세션이 유지되는 동안 편리하게 사용할 수 있습니다.


ssh-add 명령은 ssh-agent 에게 caching 할 개인 키를 등록해 주는 역할을 수행합니다.

등록

먼저 ssh-agent 에게 관리할 개인 키를 알려줘야 합니다. ssh-add 명령을 등록할 개인 키의 경로를 주고 실행하면 됩니다.

그후에 pass phrase 를 입력해 주면 추가되었다는 메시지가 나오고 login session 이 유지되는 동안 해당 개인 키의 pass phrase 는 다시 입력하지 않아도 됩니다.

$ ssh-add ~/.ssh/ubuntu@laravel.kr/laravelkr-new.pem

Enter passphrase for /home/lesstif/.ssh/ubuntu@laravel.kr/laravelkr-new.pem: 
Identity added: /home/lesstif/.ssh/ubuntu@laravel.kr/laravelkr-new.pem (/home/lesstif/.ssh/ubuntu@laravel.kr/laravelkr-new.pem)
BASH

유효기간

키를 등록할 때 -t 옵션으로 유효 기간(life time)을 설정할 수 있습니다. 기간 단위는 기본적으로 초(second) 이며 또는 sshd_config 처럼 시간을 나타내는 문자(m, h, d, w) 를 붙여서 지정할 수 있습니다.

다음은 유효 기간을 4주로 해서 키를 등록합니다.

$ ssh-add -t 4w ~/.ssh/ubuntu@laravel.kr/laravelkr-new.pem

Identity added: 
Lifetime set to 2419200 seconds
BASH


목록

ssh-agent 에 등록된 개인 키의 목록을 보려면 -l 옵션을 사용하면 전체 개인 키의 목록을 표시합니다.

$ ssh-add -l

3072 SHA256:EdbYgjw2PSYvf4g4+QsCCkUqgDGOvSTWvuvGRkLqd0g lesstif@gmail.com-new (RSA)
2048 SHA256:ix7DER155Jn5KThGm1jzKZkT8P2ueHpDLmLESy2AiFw /home/lesstif/.ssh/ubuntu@laravel.kr/laravelkr-new.pem (RSA)
BASH


삭제

삭제하려면 -d 옵션 뒤에 삭제할 개인 키의 경로를 적어주면 됩니다.

$ ssh-add -d ~/.ssh/ubuntu@laravel.kr/laravelkr-new.pem 
BASH


전체 개인키를 삭제하려면 -D 옵션을 주고 실행합니다.

$ ssh-add -D
All identities removed.
BASH


같이 보기

Ref