SSH를 통해 루트로 서버에 연결할 수 없습니다

SSH를 통해 루트로 서버에 연결할 수 없습니다

Windows의 VS Code에서 원격 탐색기를 사용하여 Ubuntu에서 서버에 액세스하고 싶습니다. 매번 비밀번호를 입력하는 것이 번거로워서 ssh-keygen을 이용하여 SSH 키 생성을 시도해보았습니다. 일반 사용자에게는 키가 제대로 작동하지만 루트로 로그인할 수 없습니다.

cmd의 오류(ssh root@<server_ip>):

root@<server_ip>: Permission denied (publickey,password).

오류 /var/log/auth.log:

sshd[1012327]: Connection reset by authenticating user root <client_ip> port 59021 [preauth]

내가 본 모든 솔루션에는 sshd_config가 언급되어 있지만 루트 로그인이 활성화되어 있습니다. sshd_config:

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

파일 에 공개 키를 추가했습니다 /home/user/.ssh/authorized_keys. 이 키는 사용자 전용인 것 같지만 가이드에 따르면 루트에도 사용할 수 있는 것 같습니다.

그렇다면 루트로 연결할 수 없는 이유는 무엇입니까?

답변1

이 키는 사용자 전용인 것 같지만 가이드에 따르면 루트에도 사용할 수 있는 것 같습니다.

가이드가 당신을 잘못 안내했습니다.

각 사용자는 자신만의 홈 디렉토리를 갖고 있으며 따라서 자신만의 authorized_keys. 루트의 홈 디렉터리는 일반적으로 /root/. 따라서 루트로 로그인하기 위한 관련 파일은 /root/.ssh/authorized_keys. 그것은 와 아무 관련이 없습니다 /home/user/.ssh/authorized_keys.

생각해 보세요. 일반 사용자인 /home/user/.ssh/authorized_keys사용자에 속하며 다음을 수행할 수 있습니다.user아니면 그렇지 않을 수도 있다sudo 액세스 권한이 있습니다. 사용자는 거기에 어떤 키든 등록할 수 있습니다. 루트가 동일한 파일을 사용한 경우 사용자는 일부 키를 인증하기만 하면 루트로 로그인할 수 있습니다.

관련 정보