SSH 공개 키 인증 로그인

일반적으로 ssh를 사용하여 서버에 원격으로 로그인할 때는 사용자 이름과 비밀번호를 입력해야 합니다. 이는 시스템을 자주 관리하는 사람들에게 매우 번거로운 일입니다. 비밀번호 없이 원격 Linux/Unix 서버에 직접 로그인하려면 어떻게 해야 할까요? SSH 공개 키 인증을 사용하면 이 문제를 해결할 수 있습니다.

일반적으로 ssh를 사용하여 원격으로 서버에 로그인할 때는 사용자 이름과 비밀번호를 입력해야 합니다. 이는 시스템을 자주 관리하는 사람들에게 매우 번거로운 일입니다. 비밀번호 없이 원격 서버에 직접 로그인하려면 어떻게 해야 할까요?/Unix 서버? SSH 공개 키 인증을 사용하면 이 문제를 해결할 수 있습니다.
공개 키 인증은 한 쌍의 암호화된 문자열을 사용합니다. 하나는 공개 키라고 하며 누구나 볼 수 있고 암호화에 사용되며, 다른 하나는 개인 키라고 하며 소유자만 볼 수 있고 복호화에 사용됩니다. 공개 키로 암호화된 암호문은 개인 키를 사용하여 쉽게 복호화할 수 있지만, 공개 키만으로 개인 키를 추측하는 것은 매우 어렵습니다.
공개 키 인증을 사용하기 전에 서버의 ssh 설정 파일 /etc/ssh/sshd_config를 확인하세요.

RSAAuthentication yes # RSA 인증을 활성화합니다. 기본값은 yes입니다. PubkeyAuthentication yes # 공개 키 인증을 활성화합니다. 기본값은 yes입니다.

구성에 문제가 없다면 다음 단계로 진행할 수 있습니다.
예를 들어 보겠습니다. 클라이언트 A와 서버 B라는 두 대의 컴퓨터가 있습니다. ssh 공개 키 인증을 사용하여 클라이언트 사용자로 컴퓨터 A에서 서버 사용자로 컴퓨터 B에 로그인하려는 경우, 방법은 다음과 같습니다.
1. 클라이언트 A에서 공개 키와 개인 키를 생성합니다.

ssh-keygen -t rsa 공개/비공개 RSA 키 쌍을 생성합니다. 키를 저장할 파일을 입력하세요(/home/client/.ssh/id_rsa): # Enter 키를 누르세요. '/home/client/.ssh' 디렉터리가 생성되었습니다. 암호를 입력하세요(암호가 없으면 비워 두세요): # Enter 키를 누르세요. 같은 암호를 다시 입력하세요: # Enter 키를 누르세요. 사용자 ID가 /home/client/.ssh/id_rsa에 저장되었습니다. 공개 키는 /home/client/.ssh/id_rsa.pub에 저장되었습니다. 키 지문은 다음과 같습니다: f5:30:ba:10:ee:7a:c6:cf:d8:ec:3f:4c:b3:f1:09:6d client@linuxsong.org

이렇게 하면 이 컴퓨터의 현재 사용자 클라이언트의 공개 키(/home/client/.ssh/id_rsa.pub)와 개인 키(/home/client/.ssh/id_rsa)가 생성됩니다.

2. 이전 단계에서 생성한 공개 키 파일을 서버 B에 복사합니다. 그런 다음 파일 내용을 서버 사용자 디렉터리의 .ssh/authorized_keys에 추가합니다.

cat id_rsa.pub >> .ssh/authorized_keys

이런 방식을 사용하면 클라이언트 사용자는 클라이언트에서 서버 사용자에 로그인할 때 비밀번호를 입력할 필요가 없습니다.
또한, 서버 보안이 비교적 높은 경우, 사용자가 공개 키 인증을 통해서만 로그인하고 비밀번호 로그인은 금지하도록 설정할 수 있습니다. 서버 설정 파일 /etc/sshd/sshd_config를 수정하기만 하면 됩니다.

비밀번호 인증 번호

수정 후 sshd 서비스를 다시 시작합니다.
이런 방식으로 사용자가 비밀번호로 로그인하면 다음과 같은 메시지가 표시됩니다.

권한이 거부되었습니다(publickey,gssapi-with-mic)

시스템의 보안을 효과적으로 개선합니다.
알아채다:
.ssh 디렉토리의 권한은 0700이어야 합니다.
.ssh/authorized_keys 파일 권한은 0600이어야 합니다.
그렇지 않으면 공개 키 인증이 적용되지 않습니다.

점수

댓글남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다