루트가 아닌 사용자로 SSH 클라이언트 인증

루트가 아닌 사용자로 SSH 클라이언트 인증

내 시스템에서는 루트 사용자에게 SSH 클라이언트 인증이 허용되지만 루트가 아닌 사용자에게만 SSH 클라이언트 인증을 허용하고 싶습니다. ssh를 루트로 비활성화하기 위해 으로 변경했지만 PermitRootLogin yes이제 PermitRootLogin no내 플랫폼에 ssh를 연결할 수 없습니다.

루트가 아닌 사용자에 대해서만 SSH 클라이언트 인증을 활성화하는 방법을 알려줄 수 있는 사람이 있습니까?

답변1

SSH 서버 구성은 /etc/ssh/sshd_config 파일에서 수행됩니다. 이 파일을 열고 다음을 확인해야 합니다.

1) 아래에 지침이 있나요?

AllowUsers ...
AllowGroups ...
DenyUsers ...
DenyGroups ...

그렇다면 자신처럼 연결할 수 있도록 변경해야 합니다.

2) 설명이 있습니까?

PasswordAuthentication no

존재하는 경우 SSH 인증은 암호화 키로만 수행할 수 있음을 의미합니다. 분명히 그렇지 않기 때문에 실제로 시스템에 SSH로 접속하는 것을 방지할 수 있습니다.

이것을 다음으로 변경하십시오.

PasswordAuthentication yes

이렇게 하면 이것이 문제에 대한 완전한 해결책인지 테스트할 수 있습니다. SSH가 자신에게도 적합하다는 확신이 들면 암호화 키를 직접 생성하고 PasswordAuthentication을 다시 끄십시오. 비밀번호 대신 키를 사용하여 인증하는 방법에 대한 유용한 가이드가 온라인에 많이 있습니다. 해. 귀하의 보안이 크게 향상됩니다.

이 테스트를 완료하려면 SSH 서버를 다시 시작해야 합니다. 그렇지 않으면 /etc/ssh/sshd_config에 도입된 변경 사항이 적용되지 않습니다. 이를 수행하는 방법은 시스템에 따라 다릅니다.

 sudo service ssh restart

또는 sudo systemctl daemon-reload sudo systemctl restart sshd

(첫 번째는 Debian 및 그 파생 제품에 적용되고, 두 번째는 Arch Linux, Fedora 및 일반 시스템 시스템에 적용됩니다.)

3.) 설명이 있나요?

PermitRootLogin no

루트로 로그인하려고 하면? 그렇다면 위의 "아니요"를 "예"로 변경하세요.

그래도 문제가 해결되지 않으면 클라이언트 컴퓨터에서 다음을 실행하여 얻을 수 있는 디버깅 세부 정보를 제공해야 합니다.

ssh me@my_pc -vv

이는 많은 양의 데이터를 출력하며 이 작업에 유용합니다. 서버에는 동등한(명백한 보안상의 이유로 더 많은 정보를 제공하는) 옵션이 있습니다. 먼저 서비스를 중지해야 합니다.

 sudo service ssh stop
 sudo systemctl stop sshd

그런 다음 다시 시작하세요

 sudo /usr/sbin/sshd -Dd
 sudo /usr/bin/sshd -Dd

두 가지 유형의 시스템에 모두 적용됩니다(Arch 이외의 시스템 배포판에 대해서는 잘 모르겠습니다. 아마도 첫 번째 형식은 Arch를 제외한 모든 시스템에서 작동할 수 있습니다).

그러면 디버깅에 필요한 정보가 생성됩니다.

답변2

어떤 Linux/Unix를 사용하고 있는지 확실하지 않습니다. 나는 우분투를 많이 사용하며 다음과 같이 진행됩니다.

기본적으로 일반 사용자는 SSH를 통해 로그인할 수 있습니다. 다음을 통해 로그인할 수 있습니다.

ssh -l myuser myhost

또는 통해

ssh myuser@myhost

이것을 시도해 보셨나요? 그렇다면 다음과 같은 일반적인 실패 이유를 생각해 볼 수 있습니다.

  • Linux/Unix에 따라 로그인을 허용하려면 사용자를 특정 그룹(예: ssh)에 추가해야 할 수도 있습니다.
  • 또한 비밀번호를 사용한 로그인이 허용되는지 또는 공개 키만 허용되는지 확인해야 합니다(이 경우 로그인 시 키를 생성하거나 지정해야 할 수 있음).
  • 다른 IP를 사용하는 동안 특정 IP에 대한 로그인을 제한할 수 있습니다.

디버그하려면 -vvv로그인을 시도할 때 ssh를 사용해 보십시오. 그러면 SSH가 시도하는 것과 진행 중인 작업에 대한 많은 디버그 메시지가 표시됩니다.

관련 정보