[우분투, OSX] SSH 키에 암호 걸기와 ssh-agent, ssh-add Computer Tip

SSH를 PKI의 공개키/개인키를 이용한 접속하는 것은 아무리 강조해도 지나치지 않는다.
실제로 칠팔년 전에 SSH의 root 가 사전공격으로 뚫려 큰 프로젝트의 시연을 망칠뻔한 경험을 하고 부터는
더욱 더 그렇다.
그런데 문제는 그 이후로 ssh 키에 대해서 암호를 따로 적용하지 않고 있다는 데 또 다른 문제가 있을 수 있다.
불편하다는 이유로, 또는 계속 암호를 넣으면 그게 예전처럼 암호를 넣는 것하고 똑 같은게 아닌가 
하는 등의 이유가 있었다.
또는 누군가가 내 컴퓨터 자리에 있기만 하면 나와 Trusted-Connected 서버는 모두 들어갈 확률이 있다는 구멍도 존재한다.

1) ssh 키 생성
$ ssh-keygen 
PassPhrase 부분에 암호를 넣어준다.

2) 키의 암호 변경
$ ssh-keygen -p -f ~/.ssh/id_rsa
구암호 혹은 새 암호를 넣어 암호를 변경한다.

3) ssh-agent 확인
일단, 우분투와 OSX를 확인한 바,
$ ps -ef | grep ssh-agent 
와 같이 ssh-agent가 돌고 있었다.
혹시 안돌고 있다면,

.bashrc 또는 .profile에

# ssh-agent variables
if [ -f ~/.ssh-agent.sh ]; then
    . ~/.ssh-agent.sh
fi
if [ ! -S $SSH_AUTH_SOCK ]; then
    ssh-agent -t 86400 > ~/.ssh-agent.sh
    echo "No agent! ssh-agent started."
    . ~/.ssh-agent.sh
fi

를 추가해 준다.

4) ssh-add 사용
그럼 계속해서 암호를 물어보면 어찌나 걱정이 되는데,
이때 
$ ssh-add 
명령을 주어 암호를 넣어두면,
현재 접속된 세션 혹은 정하진 시간에 따라 암호를 기억해 두고,
ssh-agent가 대행을 하게 된다.

참고) OSX 에서는 위의 명령을 주지 않아도 ssh 연결을 시도하면,

창이 나타나서 암호를 입력하면, 자동으로 암호가 보관된다.

5) ssh-add -D
위의 명령으로 혹시라도 저장된 암호를 모두 삭제할 수 있다.


주의) 만약 SSH 키에 주었던 passphrase를 삭제하려면,

$ ssh-keygen -p -P <old_password> -f ~/.ssh/id_rsa

와 같이 하여 새로 묻는 passphrase를 무시하면 된다.


덧글

댓글 입력 영역

구글애드텍스트