리눅스2023. 4. 18. 15:13

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/519810

 

꼭 보안 문제가 아니라도 ssh 서버가 탑재된 리눅스에서 ssh 암호화 통신에 사용할 호스트 키(host key)를 다시 만들어 주어야 할 때가 있다. 예를 들어 ssh 서버로 사용하던 리눅스 가상머신을 복제했을 경우 복제된 가상머신의 호스트 키를 바꿔야 한다거나, 서버를 임대했을 경우에 마음의 평화를 위해 바꾼다거나 등등.

ssh 서버 키는 /etc/ssh 디렉토리에 저장되어 있다. (데비안/우분투/오픈수세 기준인데 아마 다른 배포판도 비슷할 것이다.) 터미널창에서 아래와 같이 입력해 주자. RSA, DSA, ECDSA 이렇게 세가지 종류의 키를 재생성한다. 키값을 덮어쓸 것인지(overwrite) 묻는데 y를 입력하면 키가 재생성된다.
 
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa

sudo ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa

sudo ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa -b 521

서버쪽의 키가 변경되었을 경우, 클라이언트에서 해당 서버로 ssh 접속을 할 때 기존의 키와 다르다면서 오류 메세지가 나올 수 있다. 클라이언트쪽에서는 ~/.ssh/known_hosts 파일에 이전에 접속했던 호스트의 키가 저장되어 있는데 이것이 현재 접속할 때 확인한 키와 다르기 때문이다. 터미널창에서 아래와 같이 입력해서 해당 서버에 대응되는 기존의 ssh 키를 제거해 주자. 예시는 my_ssh_server.com의 키를 제거하는 경우이다.

ssh-keygen -f ~/.ssh/known_hosts -R my_ssh_server.com

728x90
Posted by 반달가면