Ubuntu 20.04에서 SSH 키를 추가하는 방법

Ubuntu 20.04에서 SSH 키를 추가하는 방법

SSH 키를 사용하여 원격 Ubuntu 서버에 안전한 암호 없는 로그인 설정

SSH는 클라이언트 컴퓨터가 원격 서버에 연결하고 통신하는 데 도움이 되는 보안 클라이언트-서버 네트워크 프로토콜입니다. SSH 연결 은 터미널에 입력한 명령이 암호화된 채널을 통해 원격 서버로 전송되도록 합니다.

원격 서버에 연결하는 데 사용되는 인증 메커니즘에는 암호 기반 인증(무차별 대입 공격에 취약)과 SSH 키 기반 인증(매우 안전함)의 두 가지 유형이 있습니다.

SSH 키 기반 인증에서는 공개 키와 개인 키라고 하는 키 쌍이 클라이언트 컴퓨터에서 생성됩니다. 이 공개 키의 복사본을 원격 서버에서 사용할 수 있습니다. 클라이언트가 서버에 연결 요청을 보내면 서버는 임의의 문자열을 생성하고 공개 키를 사용하여 암호화합니다. 이 문자열은 클라이언트 컴퓨터에서 사용할 수 있는 개인 키를 통해서만 해독할 수 있습니다. 이 방법을 사용하면 개인 키를 포함하는 클라이언트만 서버에 액세스할 수 있습니다.

이 가이드에서는 Ubuntu 20.04 LTS 서버에서 SSH 키를 설정하는 방법을 살펴봅니다.

컴퓨터에 기존 SSH 키가 있는지 확인하십시오.

SSH 키 쌍이 컴퓨터에 이미 존재하는지 확인하려면 터미널에 이 명령을 입력하십시오.

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

위의 명령이 no such file or directory또는 를 반환 no matches found하면 SSH 키 쌍이 존재하지 않음을 의미합니다.

기존 SSH 키 쌍이 있는 경우 동일한 키 쌍을 사용하여 두 개의 원격 서버에 액세스하거나 다른 이름을 가진 다른 키 쌍을 생성할 수도 있습니다. 다음 단계로 넘어가 두 경우 모두에 대해 SSH 키를 생성하는 방법을 살펴보겠습니다.

클라이언트 컴퓨터에서 SSH 키 생성

컴퓨터에서 새 SSH 키 쌍을 생성하려면 아래와 같이 명령을 입력하십시오.

ssh-keygen

기본적으로 SSH 키는 2048비트입니다. 더 나은 보안을 위해 더 높은 비트의 SSH 키를 생성하려면 다음 명령을 사용하십시오.

ssh-keygen -b 4096

명령이 성공적으로 실행되면 다음 메시지가 화면에 표시됩니다.

공개/개인 rsa 키 쌍을 생성합니다.
키를 저장할 파일 입력(/home/harshit/.ssh/id_rsa):

이제 컴퓨터에 기존 SSH 키 쌍이 없으면 키를 누르십시오 Enter. 그러나 기존 SSH 키가 있는 경우 아래와 같이 다른 파일 이름으로 키를 저장하십시오.

키를 저장할 파일 입력(/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx

를 교체 xxx아래를 눌러 그림과 같이, 적절한 이름을 가진 파일 이름의 끝에서 Enter.

키를 저장할 파일 입력(/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1

다음 프롬프트는 임의 길이의 암호를 입력하라는 메시지를 표시하며 장치에서 2단계 보안을 보장합니다. 

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

이 암호를 입력하면 개인 키에 액세스하는 사람이 있더라도 이 암호가 없으면 원격 서버에 액세스할 수 없습니다.

전체 프로세스가 완료되면 화면에 다음 메시지가 나타납니다.

Ubuntu 20.04에서 SSH 키를 추가하는 방법

SSH 키가 시스템에 생성되었습니다. 이제 원격 서버에서 공개 키를 복사할 차례입니다.

원격 Ubuntu 서버에 공개 키 복사

공개 키를 원격 서버에 복사하는 가장 쉽고 빠른 방법은 ssh-copy-id유틸리티 를 사용하는 것 입니다. 그러나 어떤 이유로 인해 컴퓨터에서 이 유틸리티를 사용할 수 없는 경우 이 섹션에서 제공하는 다른 방법을 사용할 수도 있습니다.

ssh-copy-id 유틸리티 사용

ssh-copy-id유틸리티는 기본적으로 장치의 공개 키를 원격 Ubuntu 시스템의 적절한 디렉토리로 복사하는 Ubuntu 시스템에서 사용할 수 있습니다.

공개 ssh 키를 복사하려면 아래와 같이 터미널에 명령을 입력하기만 하면 됩니다.

ssh-copy-id [email protected]

위 명령에서 usernameand hostname를 서버의 사용자 이름과 호스트 이름으로 바꿉니다 .

호스트에 처음 연결하는 경우 터미널에 다음 메시지가 표시됩니다 . 입력 yes하고 를 누릅니다 Enter.

호스트 '172.105.XX.XX(172.105.XX.XX)'의 인증을 설정할 수 없습니다.
ECDSA 키 지문은 xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx입니다.
계속 연결하시겠습니까(예/아니요)? 

이제 ssh-copy-id유틸리티는 id_rsa.pub공개 SSH 키가 포함된 이름 을 가진 파일을 검색합니다 . 스캔 프로세스가 완료되면 아래와 같이 원격 서버의 비밀번호를 입력하라는 메시지가 표시됩니다. 암호를 입력하고 를 누르십시오 Enter.

/usr/bin/ssh-copy-id: 정보: 이미 설치된 키를 걸러내기 위해 새 키를 사용하여 로그인을 시도합니다.
/usr/bin/ssh-copy-id: INFO: 1개의 키를 설치해야 합니다. -- 메시지가 표시되면 새 키를 설치하라는 메시지가 표시됩니다.
[이메일로 보호됨] 님 의 비밀번호:

키가 추가되면 터미널에 다음 메시지가 출력으로 나타납니다.

추가된 키 수: 1
이제 "ssh ' [email protected] '" 을 사용하여 컴퓨터에 로그인을 시도 하고 원하는 키만 추가되었는지 확인하십시오.

클라이언트 컴퓨터에 여러 SSH 키가 있는 경우 적절한 공개 키를 원격 컴퓨터에 복사하려면 아래에 표시된 패턴으로 명령을 입력하십시오.

ssh-copy-id -i id_rsa_xxx.pub [email protected]

💡 팁

터미널에 입력할 때 파일 이름 끝에 .pub를 넣는 것을 잊지 마십시오.

파이핑 방식으로 공개 키 복사

ssh-copy-id유틸리티를 사용할 수 없는 경우 터미널에 다음 명령을 입력합니다 . 이 명령은 조금 더 길어 보일 수 있지만 적절하게 작동합니다.

cat ~/.ssh/id_rsa.pub | ssh [email protected]_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

교체 remote_usernameserver_ip_address사용자 이름과 IP 주소.

컴퓨터에서 사용할 수 있는 SSH 키가 여러 개인 경우 선택한 id_rsa.pub공개 SSH 키 파일 로 바꾸십시오 . 예를 들어, id_rsa_client_1.pub.

메시지가 나타나면 원격 사용자 암호를 입력하고 를 누르십시오 Enter.

[email protected]'s password:

암호를 입력하면 id_rsa.pub파일이 authorized_keys원격 서버 의 파일 로 복사됩니다 .

공개 키 수동 복사

암호 인증을 통해 원격 시스템에 액세스할 수 없는 경우 이 방법을 사용합니다.

터미널 id_rsa.pub에서 cat명령을 사용 하여 파일을 엽니다 . 텍스트 편집기에서 열 수도 있습니다. 목적은 파일 내용을 복사하는 것입니다.

cat ~/.ssh/id_rsa.pub

파일의 내용은 아래와 같이 표시됩니다.

SSH-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + + + VvJyZ dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6Hy / 65 + + qqmiuLyuIQXjDiiYTjHTx VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH [이메일 보호] _PC

이제 원격 서버에 로그인하고 아래 표시된 명령을 사용하여 복사한 내용을 붙여넣습니다. above_string복사한 내용으로 바꿉니다 .

echo above_string >> ~/.ssh/authorized_keys

여러 SSH 키 구성(선택 사항)

이 단계는 클라이언트 컴퓨터에 여러 SSH 키를 설정한 사용자를 위한 것입니다. SSH 키 설정이 하나만 있는 경우 이 섹션을 건너뛰십시오.

여러 SSH 키를 관리하기 위해 이제 아래 표시된 명령을 사용하여 디렉토리 config내부 에 파일을 생성 .ssh합니다.

cd ~/.ssh
vim config

입력 한 i다음 예와 같이, 명령 모드로 들어 여러 호스트의 세부 정보를 입력합니다 :

Host remote-ubuntu-server
HostName 172.105.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_1

Host remote-ubuntu-server
HostName 172.106.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_2

마찬가지로 다른 원격 서버와 해당 키의 세부 정보를 입력합니다. 프로세스가 완료되면 Esc:wq를 눌러 저장하고 종료합니다.

이제 후속 프로세스는 클라이언트 컴퓨터에 단일 또는 다중 SSH 키가 있는 경우 모두 동일합니다.

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

공개 키 복사 프로세스가 완료되면 아래와 같이 명령을 입력하여 원격 서버에 로그인합니다.

ssh [email protected]_ip_address

키 쌍을 생성하는 동안 암호를 제공한 경우 암호를 입력하라는 메시지가 표시됩니다. 인증 절차가 완료되면 새 세션이 열립니다.

이제 원격 서버에서 SSH 키 기반 인증을 성공적으로 구성했습니다. 그러나 암호 기반 인증은 여전히 ​​서버에서 활성 상태이므로 원격 서버가 여전히 무차별 대입 공격에 취약하다는 것을 의미합니다.

이제 원격 서버에서 비밀번호 기반 로그인 메커니즘을 완전히 비활성화합니다.

암호 기반 로그인 메커니즘 비활성화

변경하기 전에 원격 계정에 대한 루트 사용자 또는 sudo 사용 가능 사용자가 SSH 키 기반 인증 시스템을 사용하여 서버에 액세스할 수 있는지 확인하십시오. 이 단계는 암호 기반 로그인을 완전히 잠그거나 비활성화하므로 최소한 한 명의 사용자 루트 권한이 SSH 키를 통해 서버에 액세스할 수 있어야 합니다.

원격 Ubuntu 서버에 로그인하고 아래 표시된 명령을 입력하십시오.

sudo vim /etc/ssh/sshd_config
  • 를 눌러 Esc, /입력 '한 PasswordAuthentication'와 히트 enter
  • 이제 i'PasswordAuthentication yes'를 누르고 값을 'PasswordAuthentication no'로 변경합니다.
  • Esc위의 과정을 반복해서 눌러 'ChallengeResponseAuthentication', 'UsePAM'을 찾아 값도 no같이 변경 합니다.
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

모든 값이 로 설정되면 no를 누르고 Esc를 입력 :wq하고 누르십시오 enter.

모든 변경 사항을 활성화하려면 ssh아래 명령을 사용하여 서비스를 다시 시작하십시오 .

sudo systemctl restart ssh

이제 컴퓨터에서 새 터미널 창을 열고 현재 세션을 닫기 전에 SSH 키 인증이 제대로 작동하는지 확인하십시오.

확인 프로세스가 완료되면 실행 중인 모든 세션을 닫습니다.

이제 Ubuntu 20.04 서버에서 SSH 키 기반 인증을 성공적으로 구성했습니다. 이제 아무도 암호 기반 로그인 메커니즘을 사용하여 서버에 로그인할 수 없습니다. 


Chromebook에서 복사하여 붙여넣는 방법

Chromebook에서 복사하여 붙여넣는 방법

Chromebook으로 전환할 때 가장 먼저 궁금해할 수 있는 것은 이전 OS에서 손에 꼽히던 것과 같은 기본적인 작업을 수행하는 방법입니다. 복사 및 붙여넣기는 한 지점 또는 다른 지점에서 사용해야 하는 기본적인 기능 중 하나입니다.

tt를 사용하여 Linux에서 타이핑 테스트를 수행하는 방법

tt를 사용하여 Linux에서 타이핑 테스트를 수행하는 방법

기술의 현대 시대에 타이핑은 많은 직업에서 가장 일반적인 활동 중 하나가 되었습니다. 정확하게 입력하는 법을 배우면 같은 시간에 더 많은 일을 할 수 있습니다.

Ubuntu에서 Wi-Fi가 작동하지 않습니까? 해결 방법은 다음과 같습니다.

Ubuntu에서 Wi-Fi가 작동하지 않습니까? 해결 방법은 다음과 같습니다.

Ubuntu는 견고성과 비교적 적은 오류로 유명합니다. 그러나 확실히 문제가 많은 것은 아닙니다. 그러한 문제 중 하나는 Wi-Fi 드라이버에 있습니다. Wi-Fi가 작동하지 않는 경우에만 시스템 전원을 켤 수 있습니다.

Ubuntu의 루트 수퍼유저의 차이점

Ubuntu의 루트 수퍼유저의 차이점

Ubuntu의 루트 수퍼유저의 차이점이 무엇인지 궁금하십니까? 글쎄, 우리는 당신을 여기에서 다루었습니다.

Chromebook에서 QR 코드를 만들고 스캔하는 방법

Chromebook에서 QR 코드를 만들고 스캔하는 방법

빠른 응답 코드 또는 QR 코드는 기존 바코드보다 더 많은 정보를 포함하는 고급 바코드입니다. 이 코드는 2차원이므로 세로 또는 가로로 스캔할 수 있습니다.

Arch Linux에서 패키지를 설치하고 제거하는 방법

Arch Linux에서 패키지를 설치하고 제거하는 방법

Arch Linux에 패키지를 설치하고 싶지만 방법을 모르십니까? 많은 사람들이 Debian 기반 배포판에서 Arch로 처음 마이그레이션할 때 이 문제에 직면합니다. 그러나 패키지 관리자를 사용하여 Arch 기반 시스템에서 패키지를 쉽게 관리할 수 있습니다.

Ubuntu의 Alt-Tab에서 Windows 그룹을 해제하는 방법

Ubuntu의 Alt-Tab에서 Windows 그룹을 해제하는 방법

Ubuntu에서는 기본적으로 창 대신 응용 프로그램을 전환할 수 있습니다. Ubuntu의 Alt-Tab에서 이를 반대로 하고 탭을 그룹 해제하는 방법은 다음과 같습니다.

Linux에 Spotify를 설치하는 방법

Linux에 Spotify를 설치하는 방법

Spotify는 가장 큰 음악 스트리밍 서비스 중 하나입니다. 모바일(Android 및 iOS) 및 데스크톱(Mac 및 Windows) 장치 모두에 대한 기본 클라이언트가 있습니다.

Linux를 시작하는 9가지 기본 명령

Linux를 시작하는 9가지 기본 명령

Linux 사용법 가이드는 터미널에서 특정 작업을 수행할 것으로 예상하는 경우가 많으며, 이는 처음에는 겁이 날 수 있습니다. 그러나 걱정하지 마십시오. 이 Linux 명령 치트 시트는 터미널을 열고 몇 가지 유용한 명령을 실행하는 과정을 다룹니다.

2020년 Ubuntu 20.04를 위한 15가지 최고의 테마

2020년 Ubuntu 20.04를 위한 15가지 최고의 테마

Ubuntu 20.04s의 새로운 GNOME 데스크탑에 새로 업데이트된 많은 테마를 설치할 준비가 되었습니다. 2020년 최고의 우분투 테마 목록은 다음과 같습니다.