SSH 키를 사용하여 Linux에서 루트 SSH 로그인을 활성화하는 방법

루트 사용자의 공개 키를 사용하여 SSH 로그인을 활성화하려면, 공개 키를 루트의 authorized_keys설정 파일 에 추가하고 PermitRootLogin prohibit-password, OpenSSH 구성을 검증한 후 서비스를 재시작하십시오. 이렇게 하면 루트 사용자는 공개 키를 사용하여 로그인할 수 있지만, 암호 및 키보드 기반 인증은 차단됩니다. 옵션 정의는 OpenSSH의 sshd_config 설명서를 참조하십시오.

SSH를 통해 관리자 계정으로 Linux 서버에 접속한 터미널 화면입니다.
이 터미널 화면은 신뢰 확인 메시지를 보여줍니다. 호스트 지문을 수락하기 전에 신뢰할 수 있는 채널을 통해 실제 호스트 지문을 확인하십시오.

루트 계정으로 직접 접속하면 승인된 키에 무제한 제어 권한이 부여됩니다. 이 권한은 본인이 관리하는 시스템에서만 사용하고, 가급적 사설 네트워크 또는 방화벽 뒤에서 사용하십시오. 일반적인 작업에는 명명된 사용자 계정으로 로그인하여 sudoSSH 설정을 변경하십시오. 원격 SSH 설정을 변경하기 전에 현재 세션을 유지하고 다른 복구 경로를 확보해 두십시오.

SSH 서버를 편집하기 전에

  • OpenSSH 서버를 실행할 수 있는 계정으로 접속하여 sudoOpenSSH 서버가 실행 중인지 확인하십시오.
  • 클라이언트 SSH 키 쌍을 준비하세요. 공개 키(일반적으로 .js로 끝나는 파일)를 복사하고 .pub, 개인 키는 절대 공유하지 마세요.

키 기반 SSH에만 루트 암호를 설정하지 마십시오. 암호 잠금과 공개 키 접근은 별개의 제어 방식이며, 배포판 계정 정책이 로그인에 영향을 줄 수 있습니다. 우분투 사용자 관리 가이드 에 따르면 암호 잠금만으로는 기존 SSH 키 접근을 차단할 수 없습니다.

키 기반 루트 SSH 로그인을 활성화합니다.

1. 일반 관리자 계정으로 로그인하세요.

클라이언트의 터미널에서 이미 sudo 권한이 있는 계정으로 접속하세요.

ssh admin@server.example.com

예시 값을 교체하십시오. 새 호스트 키 지문을 수락하기 전에 신뢰할 수 있는 채널을 통해 검증하십시오.

2. 루트 계정에 공개 키를 추가하세요.

서버에서 루트 사용자의 SSH 디렉터리를 제한된 권한으로 생성한 다음, 승인된 키 목록을 편집합니다.

sudo install -d -m 700 /root/.ssh
sudoedit /root/.ssh/authorized_keys

공개 키 전체를 한 줄에 붙여넣고 저장하세요. 개인 키는 절대 붙여넣지 마시고, 기존 항목은 그대로 유지하세요. 그런 다음 소유권과 권한을 제한하세요.

sudo chown -R root:root /root/.ssh
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys
루트 SSH 디렉터리를 생성한 후 루트 사용자의 authorized_keys 파일이 터미널 편집기에서 열립니다.
루트 사용자의 authorized_keys 파일에 전체 공개 키를 한 줄로 추가하십시오. 여기에 표시된 축약된 키는 시각적인 자리 표시자일 뿐입니다.

3. 루트 로그인 정책을 설정합니다.

예를 들어 편집기를 사용하여 서버 구성 파일을 엽니다.

sudoedit /etc/ssh/sshd_config

활성화된 PermitRootLogin지시문을 찾아 다음과 같이 변경하십시오.

PermitRootLogin prohibit-password

이는 루트 암호를 허용할 수 있는 방식보다 안전합니다 PermitRootLogin yes. 중복된 지시문을 추가하지 마십시오. OpenSSH는 처음 얻은 값을 사용하며, 배포판에 따라 Include파일을 로드할 수도 있습니다. 활성화된 설정을 편집하고 관련 없는 인증 옵션은 변경하지 마십시오.

PermitRootLogin이 prohibit-password로 설정된 OpenSSH 서버 구성입니다.
강조 표시된 줄은 루트 인증을 제어합니다. 표시된 다른 인증 옵션은 별도의 설정이며 정책에 맞게 조정해야 합니다.

4. 설정을 적용하기 전에 유효성을 검사하십시오.

먼저 구문 오류를 확인하세요.

sudo sshd -t

출력이 없으면 구문 검사를 통과한 것입니다. 다시 로드하기 전에 보고된 오류를 수정하십시오. 다음 명령으로 유효 값을 확인할 수 있습니다.

sudo sshd -T | grep permitrootlogin

출력 내용이 정확한지 확인하십시오 permitrootlogin prohibit-password. 그렇지 않다면 포함된 파일과 해당 Match블록을 확인하십시오. sshd 매뉴얼-t 에서는 이를 구문 검사 및 -T유효 구성 보고서로 정의합니다 .

sshd 구성 유효성 검사를 실행하고 유효한 PermitRootLogin 값을 출력하는 터미널 화면입니다.
변경 사항을 적용하기 전에 `sshd -t` 명령을 실행한 다음, 실제 루트 로그인 설정을 확인하십시오.

5. SSH 서비스를 다시 시작하세요

사용하는 배포판의 서비스 이름을 사용하세요. Ubuntu와 Debian에서는 일반적으로 다음과 같은 서비스를 사용합니다.

sudo systemctl reload ssh.service

Fedora, RHEL 및 기타 여러 배포판에서 일반적으로 사용되는 것은 다음과 같습니다.

sudo systemctl reload sshd.service

재시작이 지원되지 않는 경우, systemctl restart해당 서비스 이름을 사용하여 원래 세션을 계속 열어 두십시오. Ubuntu의 OpenSSH 가이드sshd -t 에서도 재시작 전에 실행하는 것을 권장합니다 .

우분투 또는 데비안에서 OpenSSH 서비스를 다시 로드하는 리눅스 터미널
구성이 구문 검사를 통과하면 SSH 데몬을 다시 시작하십시오. 서비스 이름은 배포판에 따라 다릅니다.

6. 두 번째 터미널에서 루트 액세스 권한을 테스트합니다.

클라이언트에서 별도의 터미널을 열고 설치한 공개 키와 일치하는 개인 키를 지정하십시오.

ssh -i ~/.ssh/id_ed25519 root@server.example.com

키 경로와 호스트 이름을 바꾸십시오. 호스트 키 프롬프트가 나타나는지 확인하고 루트 권한으로 세션이 열리는지 확인하십시오. 테스트에 실패하면 원래 세션에서 문제를 해결하고 액세스가 복원될 때까지 해당 세션을 열어 두십시오.

두 번째 터미널에서 루트 계정으로 SSH 세션을 성공적으로 열었습니다.
관리자 세션을 종료하기 전에 일치하는 개인 키를 사용하여 새 클라이언트 터미널에서 테스트하십시오.

루트 로그인 거부 문제 해결

의 경우 Permission denied (publickey), 전체 공개 키가 있는지 /root/.ssh/authorized_keys, 클라이언트가 해당 개인 키를 사용하고 있는지 확인하십시오. 소유권 및 권한을 다시 확인하십시오.

sudo chown -R root:root /root/.ssh
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys

또한 유효 PermitRootLogin값, AllowUsers규칙 DenyUsers, 서버 로그 및 루트 로그인 셸을 확인하십시오. 설정을 yes바로 가기로 변경하지 마십시오. 루트가 허용하는 인증 방법이 확장될 수 있습니다.

루트 SSH 키 파일의 소유권 및 제한적 권한을 수정하는 Linux 터미널
루트 사용자의 SSH 디렉터리는 루트 소유자여야 하며, 디렉터리에는 700 모드, authorized_keys에는 600 모드가 적용되어야 합니다.

루트 SSH 로그인이 더 이상 필요하지 않으면 비활성화하십시오.

루트 SSH 직접 접근을 차단하려면 active 지시문을 다음과 같이 변경하십시오.

PermitRootLogin no

올바른 서비스를 실행 sudo sshd -t하고 다시 로드하십시오. 이렇게 하면 관리자 계정은 계속 사용할 수 있지만 루트 사용자의 직접 SSH 접속은 차단됩니다. 암호 잠금만으로는 루트 사용자의 공개 키 로그인을 막을 수 없을 수도 있습니다.

OpenSSH 서버 구성에서 PermitRootLogin을 no로 설정한 후 유효성 검사 및 서비스 재시작 명령을 실행했습니다.
PermitRootLogin을 no로 설정하고 유효성을 검사한 후 페이지를 새로 고침하세요. 표시되는 다른 인증 옵션은 별개이며, 루트 전용 변경 사항에는 필요하지 않습니다.

자세한 내용은 OpenSSH 구성 설명서 및 Ubuntu 서버 SSH 설명서를 참조하십시오.

댓글 남기기

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

TestDisk와 PhotoRec을 사용하여 손실된 파티션과 파일을 복구하는 방법을 알아보세요. 원본 드라이브를 보호하고 안전하게 스캔한 다음 복구된 데이터를 다른 디스크에 저장하세요.

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

웹캠이나 이미지 파일을 사용하여 CoBang으로 Linux에서 QR 코드를 스캔하세요. Flatpak 카메라 접근 관련 설치 옵션, 설정 단계 및 문제 해결 방법을 참조하세요.

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하세요. 노출, 색상, 깜빡임 감소 및 기타 지원되는 제어 기능을 조정하고 호환되는 비디오 모드를 확인하세요.

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하려면 JetBrains Toolbox 또는 독립 실행형 tar.gz 아카이브를 사용하세요. Snap 및 Arch AUR 옵션도 제공됩니다. Java는 이미 포함되어 있습니다.

리눅스에 Cisco Packet Tracer를 설치하는 방법

리눅스에 Cisco Packet Tracer를 설치하는 방법

Cisco Packet Tracer 9.0.1 for Ubuntu 64비트 버전을 다운로드하고, APT를 사용하여 DEB 패키지를 설치한 다음, 터미널에서 라이선스에 동의하고 로그인하여 실습을 시작하십시오.

XFCE 4에서 듀얼 패널을 설정하는 방법

XFCE 4에서 듀얼 패널을 설정하는 방법

각 디스플레이마다 별도의 XFCE 4 패널을 생성하고, 두 번째 패널을 올바른 출력에 할당하고, 위치와 크기를 조정한 다음, 필요한 실행기와 상태 항목을 추가합니다.

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

GNOME Disks 또는 dd 명령어를 사용하여 Linux에서 CD-ROM ISO 파일을 생성합니다. 광학 드라이브를 식별하고, 복사 과정을 모니터링하고, 이미지 유효성을 검사하고, 손상된 디스크나 오디오 디스크에 다른 도구가 필요한 경우를 알 수 있습니다.

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

GIMP를 사용하여 Linux에서 사진 배경 제거하기: 피사체를 따라 그리고, 선택한 배경을 삭제하고, 투명도를 유지한 다음, 재사용 가능한 PNG 파일로 내보낼 수 있습니다.

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear를 공식 사이트에서 무료로 다운로드하세요. Windows, macOS, Linux 패키지를 비교하고, 데이터 파일을 설치한 후 첫 비행을 시작하세요.

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

브라우저에서 Google Tasks를 열거나, Chrome 바로가기 또는 앱 스타일 실행을 추가하고, 캘린더 및 Gmail을 통해 날짜별 할 일을 관리하세요.