Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

리눅스에서 SSH 비밀번호 없이 로그인 설정하는 방법 – 3단계 완벽 가이드

SSH(Secure Shell)는 원격 서버에 안전하게 접속해 명령어와 프로그램을 실행할 수 있도록 해주는 오픈소스 네트워크 프로토콜입니다. 또한 SCPrsync 명령어와 함께 사용하면 네트워크를 통해 컴퓨터 간 파일을 안전하게 전송할 수도 있습니다.

[함께 읽으면 좋은 글: OpenSSH 서버 보안 강화 방법]

SSH 키 기반 인증이 필요한 이유

이 글에서는 RHEL 계열(CentOS, Fedora, Rocky Linux, AlmaLinux)Debian 계열(Ubuntu, Mint) 리눅스 배포판에서 SSH 키를 이용해 원격 리눅스 서버에 비밀번호 입력 없이 자동으로 로그인하는 방법을 소개합니다.

SSH 키를 활용한 비밀번호 없는 로그인은 두 대의 리눅스 서버 간 신뢰 관계를 형성해 주기 때문에, 파일 동기화나 백업 자동화 작업을 훨씬 수월하게 만들어 줍니다.

실습 환경

SSH 클라이언트 : 192.168.0.12 ( Fedora 34 )
SSH 원격 호스트 : 192.168.0.11 ( CentOS 8 )

여러 대의 리눅스 원격 서버를 관리하고 있다면, SSH 비밀번호 없는 로그인은 스크립트를 활용한 자동 백업, SCP를 통한 파일 동기화, 원격 명령 실행 등 다양한 작업을 자동화하는 가장 효율적인 방법 중 하나입니다.

[함께 읽으면 좋은 글: 리눅스 시스템을 위한 백업 유틸리티 25선]

이번 예제에서는 192.168.0.12 서버의 tecmint 사용자가 192.168.0.11 서버의 sheena 사용자로 비밀번호 없이 자동 로그인하도록 설정해 보겠습니다.

1단계: SSH 키 생성 (192.168.0.12)

먼저 192.168.0.12 서버에 tecmint 사용자로 로그인한 뒤, 아래 명령어로 공개키/개인키 쌍을 생성합니다.

$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/tecmint/.ssh/id_rsa): [엔터 키 입력]
Created directory '/home/tecmint/.ssh'.
Enter passphrase (empty for no passphrase): [엔터 키 입력]
Enter same passphrase again: [엔터 키 입력]
Your identification has been saved in /home/tecmint/.ssh/id_rsa.
Your public key has been saved in /home/tecmint/.ssh/id_rsa.pub.
The key fingerprint is:
5f:ad:40:00:8a:d1:9b:99:b3:b0:f8:08:99:c3:ed:d3 admin@wsxdn.com
The key's randomart image is:
+--[ RSA 2048]----+
| ..oooE.++|
| o. o.o |
| .. . |
| o . . o|
| S . . + |
| . . . o|
| . o o ..|
| + + |
| +. |
+-----------------+

명령어를 실행하면 개인키(id_rsa)와 공개키(id_rsa.pub)가 ~/.ssh 디렉터리에 생성됩니다. 패스프레이즈(passphrase) 항목에서는 그냥 엔터 키를 눌러 빈 값으로 두면 됩니다.

2단계: 생성한 공개키를 원격 서버에 복사 (192.168.0.11)

다음으로 192.168.0.12 서버에서 새로 생성한 공개키(id_rsa.pub)를 192.168.0.11 서버의 sheena 사용자 홈 디렉터리 아래 .ssh/authorized_keys 파일로 업로드합니다. ssh-copy-id 명령어 하나면 간단히 처리할 수 있습니다.

$ ssh-copy-id admin@wsxdn.com

명령 실행 후 해당 사용자의 비밀번호를 한 번 입력하면, 공개키가 원격 서버의 authorized_keys 파일에 자동으로 등록됩니다.

3단계: 비밀번호 없는 SSH 로그인 테스트

설정이 완료되면 이제부터는 192.168.0.12 서버의 tecmint 사용자가 비밀번호 입력 없이 192.168.0.11 서버에 sheena 사용자로 바로 로그인할 수 있습니다.

$ ssh admin@wsxdn.com

접속 시 비밀번호를 묻지 않고 곧바로 셸에 진입한다면, SSH 키 기반 인증이 정상적으로 설정된 것입니다.

마무리

이번 글에서는 SSH 키를 활용해 비밀번호 없는 로그인을 설정하는 과정을 살펴보았습니다. 생각보다 간단하게 따라 할 수 있으며, 한 번 설정해 두면 서버 관리와 자동화 작업의 생산성이 크게 향상됩니다. 궁금한 점이 있다면 아래 댓글로 남겨주세요.