1.2. SSH 키 쌍 생성
로컬 시스템에서 SSH 키 쌍을 생성하고 생성된 공개 키를 OpenSSH 서버에 복사하여 암호를 입력하지 않고 OpenSSH 서버에 로그인할 수 있습니다. 키를 생성하려는 각 사용자는 이 절차를 실행해야 합니다.
시스템을 다시 설치한 후 이전에 생성된 키 쌍을 유지하려면 새 키를 만들기 전에 ~/.ssh/
디렉터리를 백업하십시오. 다시 설치한 후 홈 디렉터리로 복사합니다. root
를 포함하여 시스템의 모든 사용자에 대해 이 작업을 수행할 수 있습니다.
사전 요구 사항
- 키를 사용하여 OpenSSH 서버에 연결하려는 사용자로 로그인했습니다.
- OpenSSH 서버는 키 기반 인증을 허용하도록 구성됩니다.
절차
ECDSA 키 쌍을 생성합니다.
$ ssh-keygen -t ecdsa Generating public/private ecdsa key pair. Enter file in which to save the key (/home/<username>/.ssh/id_ecdsa): Enter passphrase (empty for no passphrase): <password> Enter same passphrase again: <password> Your identification has been saved in /home/<username>/.ssh/id_ecdsa. Your public key has been saved in /home/<username>/.ssh/id_ecdsa.pub. The key fingerprint is: SHA256:Q/x+qms4j7PCQ0qFd09iZEFHA+SqwBKRNaU72oZfaCI <username>@<localhost.example.com> The key's randomart image is: +---[ECDSA 256]---+ |.oo..o=++ | |.. o .oo . | |. .. o. o | |....o.+... | |o.oo.o +S . | |.=.+. .o | |E.*+. . . . | |.=..+ +.. o | | . oo*+o. | +----[SHA256]-----+
ssh-keygen
-t ed25519 명령을 입력하여 매개 변수 또는 Ed25519 키 쌍 없이 ssh-keygen
명령을 사용하여 RSA 키 쌍을 생성할 수도 있습니다. Ed25519 알고리즘은 FIPS-140과 호환되지 않으며 OpenSSH는 FIPS 모드에서 Ed25519 키와 함께 작동하지 않습니다.공개 키를 원격 머신에 복사합니다.
$ ssh-copy-id <username>@<ssh-server-example.com> /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed <username>@<ssh-server-example.com>'s password: … Number of key(s) added: 1 Now try logging into the machine, with: "ssh '<username>@<ssh-server-example.com>'" and check to make sure that only the key(s) you wanted were added.
<
;username> @ <ssh-server-example.com
>을 사용자 인증 정보로 바꿉니다.세션에서
ssh-agent
프로그램을 사용하지 않는 경우 이전 명령은 가장 최근에 수정된~/.ssh/id*.pub
공개 키가 아직 설치되지 않은 경우 공개 키를 복사합니다. 다른 공개 키 파일을 지정하거나ssh-agent
로 메모리에 캐시된 키보다 파일의 키 우선 순위를 지정하려면ssh-copy-id
명령을-i
옵션과 함께 사용합니다.
검증
키 파일을 사용하여 OpenSSH 서버에 로그인합니다.
$ ssh -o PreferredAuthentications=publickey <username>@<ssh-server-example.com>
추가 리소스
-
시스템의
ssh-keygen(1)
및ssh-copy-id(1)
도움말 페이지