SW/리눅스

Ubuntu 18.04 : SSH 키 : 설정 방법

얇은생각 2020. 2. 18. 07:30
반응형

Ubuntu 18.04에서 SSH 키를 설정하는 방법

SSH (Secure Shell)는 클라이언트와 서버 간의 보안 연결에 사용되는 암호화 네트워크 프로토콜이며 다양한 인증 메커니즘을 지원합니다.

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

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

 

 

우분투에서 SSH 키 만들기

새로운 SSH 키 페어를 먼저 생성하기 전에 Ubuntu 클라이언트 시스템에서 기존 SSH 키를 확인하십시오. 다음 ls 명령을 실행하여이를 수행 할 수 있습니다.

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

 

위의 명령이 해당 파일 또는 디렉토리 없음 또는 일치하는 항목이 없음과 같은 것을 출력하면 클라이언트 시스템에 SSH 키가 없고 다음 단계를 진행하여 SSH 키 쌍을 생성 할 수 있음을 의미합니다.

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

다음을 입력하여 주석으로 이메일 주소로 새로운 4096 비트 SSH 키 쌍을 생성하십시오.

 

 

ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"
# Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):
# Enter passphrase (empty for no passphrase):

 

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

다음으로 보안 암호를 입력하라는 메시지가 표시됩니다. 암호 구 사용 여부는 본인에게 달려 있습니다. 암호를 사용하기로 선택하면 추가 보안 계층이 제공됩니다.

암호를 사용하지 않으려면 Enter를 누르십시오.

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

 

 

ls ~/.ssh/id_*
# /home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

 

 

공개 키를 우분투 서버에 복사

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

공개 키를 서버에 복사하는 가장 쉽고 권장되는 방법은 ssh-copy-id라는 유틸리티를 사용하는 것입니다. 

로컬 머신 터미널에서 :

ssh-copy-id remote_username@server_ip_address
# 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 sudo_user@server_ip_address

 

텍스트 편집기에서 SSH 구성 파일 / etc / ssh / sshd_config를여십시오.

sudo nano /etc/ssh/sshd_config

 

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

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

 

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

sudo systemctl restart ssh

 

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

 

 

결론

이 학습서에서는 새 SSH 키 쌍을 생성하고 SSH 키 기반 인증을 설정하는 방법을 학습했습니다. 여러 원격 서버에 동일한 키를 추가 할 수 있습니다. 또한 SSH 비밀번호 인증을 비활성화하고 서버에 추가 보안 계층을 추가하는 방법도 알아보았습니다.

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

여러 시스템에 정기적으로 연결하는 경우 SSH 구성 파일에서 모든 연결을 정의하여 워크 플로우를 단순화 할 수 있습니다.

반응형