Linux에서 암호 없는 SSH 로그인을 활성화하는 방법

암호 없이 SSH 서버에 로그인하는 것이 좋습니다. 진지하게, 그것을 제거하십시오. Linux 서버에서 가장 공격을 많이 받는 서비스 중 하나에 비밀번호를 사용할 필요가 없겠죠? 준비하다 SSH 서버 보안 표준 암호 기반 인증을 사용하는 것은 나쁜 생각입니다. 암호는 공격자에 의해 쉽게 해독될 수 있으며 악의적인 행위자와 서버 사이에 암호가 있을 때 확실히 긴장해야 합니다. 이것이 바로 RSA 키 기반 인증이 훨씬 더 나은 이유입니다. 이미 승인된 RSA 키가 있는 컴퓨터에서만 액세스를 허용하도록 Linux 서버를 구성하고 보호할 수 있습니다. 다른 모든 사람은 즉시 거부됩니다. 추가 보너스로, 암호를 사용하거나 사용하지 않고 이러한 키를 생성할 수 있으며 이는 전적으로 사용자에게 달려 있습니다. 그럼에도 불구하고 암호가 없는 강력한 키는 대부분의 경우 좋은 것입니다. 이 가이드에서는 Linux에서 암호 없는 SSH 로그인을 활성화하는 방법을 배웁니다.

Linux에서 비밀번호 없는 SSH 로그인을 활성화하는 방법 - %categories

집에서 Linux 시스템을 사용하는 경우에도 편의성이라는 추가 이점이 있습니다. Linux 워크스테이션에서 랩탑으로 SSH X 포워딩을 설정한다고 가정해 보겠습니다. 원격 프로그램을 실행할 때마다 비밀번호를 입력하시겠습니까? SSH 키를 설정할 필요가 없습니다.

패키지 설치

필요한 패키지가 있습니다. 이미 가지고 계시겠지만 확인하는 것이 좋습니다. 패키지는 서버와 클라이언트 모두에서 동일합니다. 그러나 두 컴퓨터가 서로의 서버 및 클라이언트(홈 상태)일 가능성이 높으므로 해당 패키지가 설치되어 있는지 확인해야 할 수 있습니다.

OpenSSH 메타 패키지는 기본적으로 다른 시스템에 설치되지 않습니다. 데비안 أو Ubuntu. 아직 설치하지 않은 경우 다음 명령을 실행하여 설치할 수 있습니다.

sudo apt 설치 ssh

Linux에서 비밀번호 없는 SSH 로그인을 활성화하는 방법 - %categories

Linux에서 나만의 SSH 키 만들기

정말 쉬워요 SSH 키 생성 리눅스에서. OpenSSH에게 키를 생성해야 한다고 알려주십시오. -b 플래그로 비트의 양을 지정하고 -t로 유형을 지정하는 것도 좋은 생각입니다. 더 강력한 암호화를 제공하는 4096비트 키가 가장 좋습니다.

SSH-keygen -t ed25519

먼저 도구에서 키를 저장할 위치를 묻습니다. 그냥 클릭 엔터 버튼 기본 디렉토리로. 암호를 요청할 때 암호 없는 키 및 암호 없는 인증을 위해 비워 둡니다. 키에 암호를 사용하려면 여기에 입력하십시오.

또한 읽기:  어린이를 위한 최고의 Linux 소프트웨어: 앱, 배포판 및 게임

컴퓨터에서 키를 생성하는 데 몇 초가 걸립니다. 완료되면 키의 ASCII 아트워크 표현을 장치에 인쇄합니다.

원격 Linux 호스트에 키 보내기

키를 사용하려면 원격 서버로 보내야 합니다. OpenSSH에는 이를 위한 또 다른 기본 제공 도구도 있습니다. 키가 있는 위치와 키를 연결할 서버의 사용자를 알려줍니다.

ssh-copy-id -i ~/.ssh/id_ed25519.pub 사용자 이름@ip_remote_host

바꾸다 ip_remote_host SSH를 통해 관리할 원격 호스트의 실제 IP 주소를 사용합니다. username을 원격 호스트의 실제 사용자 이름으로 바꿉니다.

Linux에서 비밀번호 없는 SSH 로그인을 활성화하는 방법 - %categories

-i 옵션을 사용하여 공개 키가 포함된 ID 파일을 지정해야 합니다. 이 옵션 없이 SSH 키를 사용하려고 하면 오류가 발생할 수 있습니다.

Linux에서 비밀번호 없는 SSH 로그인을 활성화하는 방법 - %categories

Linux에서 SSH 연결 테스트

원격 서버의 SSH 키를 사용하여 이제 연결이 제대로 작동하는지 테스트할 수 있습니다.

다음 명령으로 로그인합니다.

ssh 사용자 이름@ip_remote_host

원격 호스트는 사용자 계정 암호를 묻지 않고 로그인합니다.

Linux에서 비밀번호 없는 SSH 로그인을 활성화하는 방법 - %categories

그러나 프로세스 중에 실수를 하면 SSH 데몬이 자동으로 사용자 계정의 암호 인증으로 되돌아갑니다. 이렇게 하면 작동하지 않는 RSA 키가 있더라도 원격 서버에 계속 액세스할 수 있습니다.

Linux에서 비밀번호 없는 SSH 로그인을 활성화하는 방법 - %categories

암호를 차단하도록 SSH 구성

최상의 보호를 위해 Linux 서버에서 SSH 암호 로그인을 비활성화해야 합니다. SSH에서 XNUMX단계 인증을 활성화하는 것과 마찬가지로 누군가가 서버에 강제로 침입하는 것을 방지합니다.

Linux에서 비밀번호 없는 SSH 로그인을 활성화하는 방법 - %categories

이 작업을 수행하기 전에 SSH 키로 안정적으로 로그인할 수 있는지 확인하는 것이 중요합니다. 손상된 키가 있는 경우 원격 서버에 자신을 잠글 수 있기 때문입니다.

또한 읽기:  Troff를 사용하여 Linux에서 PDF 문서의 형식을 지정하는 방법

구성 파일을 찾을 수 있습니다. SSH 데몬 "/etc/ssh에 있는 파일 /sshd_config". sudo 및 선호하는 텍스트 편집기를 사용하여 서버에서 파일을 엽니다. 예를 들어 다음 명령을 실행하여 nano로 이 파일을 엽니다.

sudo nano / etc / ssh / sshd_config

를 클릭하여 아래 행을 찾으십시오. Ctrl + W 예제처럼 보이도록 편집하십시오. 두 항목의 주석을 제거하고 값을 다음으로 변경하십시오. 아니.

كلمة المرور

PasswordAuthentication 아니요 PermitEmptyPasswords 아니요

Linux에서 비밀번호 없는 SSH 로그인을 활성화하는 방법 - %categories

세트 비밀번호 인증 비밀번호 인증 사용 여부입니다. 우리는 이것을 설정 "아니요" 우리는 SSH 키만 사용하기를 원하기 때문입니다.

결정하다 AllowEmptyPasswords 서버에서 빈 암호로 로그인을 허용하는지 여부입니다. 절대 허용하면 안 되므로 다음과 같이 설정했습니다. "아니요".

Linux에서 비밀번호 없는 SSH 로그인을 활성화하는 방법 - %categories

다음으로 "UsePAM" 라인을 찾아 "No"로 변경합니다. 이렇게 하면 데몬이 SSH 키 이외의 인증 방법(암호, Kerberos 등)을 사용하지 못하게 됩니다.

사용PAM 아니오

Linux에서 비밀번호 없는 SSH 로그인을 활성화하는 방법 - %categories

를 클릭하여 파일 저장 Ctrl + O , 그런 다음 Ctrl + X 그리고 다시 로드 SSH 서버.

sudo systemctl 재시작 ssh

이제 인증에 SSH 키만 사용하도록 서버를 성공적으로 구성했으므로 유효한 RSA 키 없이 로그인을 시도하는 모든 사용자는 즉시 거부됩니다.

Linux에서 비밀번호 없는 SSH 로그인을 활성화하는 방법 - %categories

자주 묻는 질문

Q 1. Linux 서버에 SSH 키를 보낼 때 "연결 거부" 메시지가 나타납니다. 이 문제를 어떻게 해결할 수 있습니까?
답변. SSH 서버가 원격 호스트에서 실행 중인지 확인하십시오. sudo systemctl status ssh를 실행하여 이를 확인할 수 있습니다. 서비스가 실행 중이 아니면 sudo systemctl start ssh 명령으로 서비스를 시작할 수 있습니다.

방화벽이 서버에서 실행 중인 경우 포트 22가 열려 있는지 확인합니다. sudo ufw state를 실행하여 이를 수행할 수 있습니다. SSH가 목록에 없으면 sudo ufw allow ssh 명령을 실행하여 활성화할 수 있습니다.

Q2. 로그인 시도 시 “권한 거부(공개키)” 오류가 발생합니다. 어떻게 해야 하나요?
답변. 이 오류는 인증에 키를 사용하도록 서버를 구성했지만 여전히 비밀번호로 로그인을 시도하고 있음을 의미합니다. 이것은 누락된 RSA 키 또는 잘못된 SSH 설정 때문일 수 있습니다. 공개 키가 서버에 올바르게 복사되었는지 확인하고 연결할 때 올바른 공개 키를 지정하십시오.

또한 읽기:  VirtualBox에서 OVA 파일을 가져오고 내보내는 방법

Q 3. 접속을 시도하면 “호스트 키 인증 실패” 오류가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까?
답변. 이 오류는 SSH 서버 호스트 키가 변경되었음을 의미합니다. 이것은 서버가 재설치된 경우에 발생할 수 있습니다. 새 공개 키를 재생성하여 원격 호스트에 복사할 수 있습니다. 이 문서의 단계를 반복하여 새 키를 재생성하고 서버에 추가합니다.

Q4.동일한 원격 Linux 서버에서 여러 SSH 키를 사용할 수 있습니까?
답변. 예. OpenSSH에서 -f 옵션을 사용하여 원격 서버에 연결하는 데 사용할 정확한 키를 지정할 수 있습니다. 예를 들어 다음을 실행합니다.

 ssh -f ~/.ssh/id_rsa_2 username@remote_ip_address

이렇게 하면 기본 "id_rsa" 대신 "id_rsa_2" 키를 사용하여 원격 서버에 연결됩니다.

그러나 이 명령은 원격 서버가 이미 새 키를 알고 있는 경우에만 작동한다는 점에 유의해야 합니다. 먼저 ssh-copy-id를 사용하여 원격 서버에 복사해야 합니다. 위의 단계와 유사하게 암호 또는 RSA 키 인증을 통해 이를 수행할 수 있습니다.

Q 5. SSH 키를 서버에 복사하려고 하면 Permission Denied 오류가 발생합니다.
답변. 이 문제는 원격 서버의 권한 문제로 인한 것일 가능성이 큽니다. 대부분의 경우 ssh-copy-id 유틸리티는 원격 서버에 연결되면 모든 액세스 문제를 올바르게 해결해야 합니다. 그러나 이 기능이 중단되어 "id_rsa"를 로컬 컴퓨터에 제대로 복사하지 못하는 경우가 있습니다.

이 문제를 해결하려면 원격 서버에 로그인하고 다음을 실행하십시오.

 chmod 700 /home/$USER/.ssh/* && chmod 600 /home/$USER/.ssh.

이렇게 하면 ".ssh" 폴더와 그 내용 모두에 대해 올바른 권한 비트가 설정됩니다.

당신은 또한 좋아할 수 있습니다