서버에 연결할 때 암호를 사용하는 것은 편리하지만 안전하지 않습니다. 악의적인 사용자가 암호를 무차별 대입해 서버에 액세스할 수 있습니다. 이를 방지하기 위해 SSH 키를 사용하여 서버에 연결할 수 있습니다. 본 문서에서는 리눅스에서 서버에 SSH 키를 설정하는 방법을 안내하겠습니다.
SSH 키 생성하기
SSH 키를 생성하려면 ssh-keygen
명령어를 사용하십시오.
이 명령은 기본적으로 RSA보다 보안성이 높은 Ed25519 키 쌍을 생성합니다.
기본값을 사용하려면 그냥 엔터 키를 누르면 됩니다.
추가적으로 암호를 사용하려면 프롬프트에 입력할 수 있습니다.
ssh-keygen
RSA 키 쌍을 생성하려면
-t rsa
옵션을 사용하십시오.
SSH 키는 어디에 있나요?
ssh-keygen
은 개인 키를 ~/.ssh/id_ed25519
에, 공개 키를 ~/.ssh/id_ed25519.pub
에 저장합니다.
RSA 키 쌍을 생성한 경우, 개인 키는
~/.ssh/id_rsa
에, 공개 키는~/.ssh/id_rsa.pub
에 저장됩니다.
공개 키와 개인 키(비공개 키)란?
공개 키는 데이터를 암호화하는 데 사용되고, 개인 키는 데이터를 해독하는 데 사용됩니다. 따라서 누구에게나 공개 키를 공유할 수 있습니다. 그러나 개인 키는 절대로 다른 사람과 공유해서는 안 됩니다.
공개 키를 서버에 복사하기
SSH 키를 서버에 추가하려면 공개 키를 서버로 복사해야 합니다.
이를 위해 ssh-copy-id
명령어를 사용할 수 있습니다.
이 명령은 공개 키를 서버로 복사하여 ~/.ssh/authorized_keys
파일에 추가합니다.
ssh-copy-id user@server
특정 공개 키를 복사하려면
-i
옵션을 사용할 수 있습니다.ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server