서버에 연결할 때 암호를 사용하는 것은 편리하지만 안전하지 않습니다. 악의적인 사용자가 암호를 무차별 대입해 서버에 액세스할 수 있습니다. 이를 방지하기 위해 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