기계적 인조 인간

CentOS 7에서 SSH 키를 설정하는 방법

How to Disable Root SSH Access on CentOS 7

How to Disable Root SSH Access on CentOS 7

차례:

Anonim

SSH (Secure Shell)는 클라이언트와 서버 간의 보안 연결을 위해 설계된 암호화 네트워크 프로토콜입니다.

가장 널리 사용되는 SSH 인증 메커니즘은 암호 기반 인증과 공개 키 기반 인증입니다. SSH 키를 사용하는 것이 일반적으로 기존 비밀번호 인증보다 안전하고 편리합니다.

이 튜토리얼은 CentOS 7 시스템에서 SSH 키를 생성하는 방법을 설명합니다. 또한 SSH 키 기반 인증을 설정하고 비밀번호를 입력하지 않고 원격 Linux 서버에 연결하는 방법을 보여줍니다.

CentOS에서 SSH 키 생성

새로운 SSH 키 페어를 생성하기 전에 CentOS 클라이언트 시스템에서 기존 SSH 키를 확인하는 것이 좋습니다.

그렇게하려면 모든 공개 키가있는 경우 다음 ls 명령을 실행하십시오.

ls -l ~/.ssh/id_*.pub

명령 출력이 No such file or directory 또는 no matches found 항목이 No such file or directory 것을 리턴하면 클라이언트 시스템에 SSH 키가없고 다음 단계를 진행하여 SSH 키 쌍을 생성 할 수 있음을 의미합니다.

기존 키가있는 경우 해당 키를 사용하고 다음 단계를 건너 뛰거나 이전 키를 백업하고 새 키를 생성 할 수 있습니다.

주석으로 이메일 주소를 사용하여 새로운 4096 비트 SSH 키 쌍을 생성하여 시작하십시오.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

파일 이름을 지정하라는 메시지가 표시됩니다.

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

기본 파일 위치 및 파일 이름을 승인하려면 Enter 를 누르 Enter .

다음으로 보안 암호를 입력하라는 메시지가 표시됩니다. 암호를 사용하든, 그것은 당신에게 달려 있습니다. 암호를 사용하도록 선택하면 추가 보안 계층이 제공됩니다.

Enter passphrase (empty for no passphrase):

전체 상호 작용은 다음과 같습니다.

새 SSH 키 쌍이 생성되었는지 확인하려면 다음을 입력하십시오.

ls ~/.ssh/id_*

/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

공개 키를 CentOS 서버에 복사

SSH 키 쌍이 생성되었으므로 다음 단계는 공개 키를 관리하려는 서버에 복사하는 것입니다.

공개 키를 원격 서버에 복사하는 가장 쉽고 권장되는 방법은 ssh-copy-id 유틸리티를 사용하는 것입니다. 로컬 머신 터미널 유형에서:

ssh-copy-id remote_username@server_ip_address

remote_username 비밀번호를 입력하라는 메시지가 표시됩니다.

remote_username@server_ip_address's password:

비밀번호를 입력하면 사용자가 인증되면 ~/.ssh/id_rsa.pub 공개 키가 원격 사용자 ~/.ssh/authorized_keys 파일에 추가됩니다. 연결이 닫힙니다.

Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@server_ip_address'" and check to make sure that only the key(s) you wanted were added.

로컬 컴퓨터에서 ssh-copy-id 유틸리티를 사용할 수없는 경우 다음 명령을 사용하여 공개 키를 복사하십시오.

cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

SSH 키를 사용하여 서버에 로그인

위 단계를 완료 한 후 비밀번호를 묻지 않고 원격 서버에 로그인 할 수 있어야합니다.

이를 확인하려면 SSH를 통해 서버에 로그인하십시오.

ssh remote_username@server_ip_address

SSH 비밀번호 인증 비활성화

원격 서버에 추가 보안 계층을 추가하기 위해 SSH 비밀번호 인증을 사용하지 않을 수 있습니다.

계속하기 전에 sudo 권한이있는 사용자의 비밀번호없이 서버에 로그인 할 수 있는지 확인하십시오.

SSH 비밀번호 인증을 비활성화하려면 아래 단계를 따르십시오.

  1. 원격 서버에 로그인하십시오.

    ssh sudo_user@server_ip_address

    텍스트 편집기로 SSH 구성 파일 /etc/ssh/sshd_config 십시오.

    sudo nano /etc/ssh/sshd_config

    다음 지시문을 검색하고 다음과 같이 수정하십시오.

    / etc / ssh / sshd_config

    PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

    완료되면 파일을 저장하고 다음을 입력하여 SSH 서비스를 다시 시작하십시오.

    sudo systemctl restart ssh

이때 비밀번호 기반 인증이 비활성화됩니다.

결론

이 학습서에서는 새 SSH 키 쌍을 생성하고 SSH 키 기반 인증을 설정하는 방법을 학습했습니다. 여러 원격 서버에 동일한 키를 추가 할 수 있습니다.

또한 SSH 비밀번호 인증을 비활성화하고 서버에 보안 계층을 추가하는 방법도 보여주었습니다.

기본적으로 SSH는 포트 22에서 수신 대기합니다. 기본 SSH 포트를 변경하면 자동 공격의 위험이 줄어 듭니다.

centos ssh 보안