SSH 연결을 위해 우분투 사용자 설정

SSH 연결을 위해 우분투 사용자 설정

새 Ubuntu 서버를 만들고 루트 사용자 내에 새 사용자를 만들었습니다. 내가 따랐던 단계:

sudo adduser tom

sudo su - tom
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
nano .ssh/authorized_keys    // paste public key

괜찮아 보이고 로그인할 수 있어요 [email protected]. 하지만 Tom으로 로그인하면 권한을 요청하고 sudo를 하면 비밀번호를 요청하는데 Tom의 비밀번호가 없으므로 루트 비밀번호를 사용하므로 다음과 같이 경고합니다.

[sudo] 톰의 비밀번호: 톰은 sudoers 파일에 없습니다. 이 이벤트가 보고됩니다.

visudo내 루트 사용자로부터 Tom을 다음과 같이 추가하려고 시도했습니다 .

root    ALL=(ALL:ALL) ALL
tom     ALL=(ALL:ALL) ALL

그러나 그것은 아무것도 바꾸지 않습니다.

Tom이 작업을 실행할 수 있는 권한을 갖고 그가 요청한 유일한 비밀번호가 SSH 비밀번호이도록 이를 설정하는 올바른 방법은 무엇입니까? Tom은 SSH 비밀번호를 사용하여 sudo npm install다음과 같은 작업을 실행해야 합니다 sudo composer install. 아니면 루트 비밀번호조차 몰라야 합니다.

내가 여기서 무엇을 놓치고 있는 걸까요?

답변1

편집하다:

두 번째 읽기에 따르면 여전히 sudo를 사용하여 Tom에게 비밀번호를 묻는 메시지를 표시하려면 다음을 수행해야 합니다.

tom    ALL = ALL: ALL

Tom이 비밀번호 없이 sudo를 실행할 수 있도록 하려면 다음 답변을 사용하세요.


나는 당신이 그 라인을 다음과 같이 원할 것이라고 믿습니다.

tom    ALL = NOPASSWD: ALL

설명하다:

tom는 이 줄이 적용되는 사용자이고, 첫 번째 ALL는 이 줄이 적용되는 호스트이고, NOPASSWD는 비밀번호가 필요하지 않음을 지정하는 레이블이고, 마지막은 ALLtom이 sudo를 통해 실행할 수 있는 명령을 지정하는 레이블입니다.

명령(또는 명령과 인수의 조합)을 제한하려는 경우 두 번째 명령을 전달할 수 있습니다 ALL. 예를 들면 다음과 같습니다.

tom    ALL = NOPASSWD: /bin/kill, /usr/bin/lprm

보다Sudoers 매뉴얼 페이지그리고대체 매뉴얼 페이지페이지 아래 약 80%에 다른 예가 있습니다.

답변2

sudo루트 또는 마스터 사용자 는 다음 작업을 수행할 수 있습니다 .

usermod -aG sudo tom

그러면 사용자 tom이 "sudo" 그룹에 추가됩니다. 이것이 필요한 전부입니다. 이렇게 /etc/sudoers하면 파일을 변경할 필요가 없으므로 명령 비밀번호를 요구하는 보안 계층을 제거하지 않는 한 파일에서 변경 사항을 되돌릴 수 있습니다 sudo. 이것을 원한다면 다음 라인을 사용해야 합니다(예:@jasonrush그의 답변에서) 귀하의 /etc/sudoers파일에 :

tom    ALL = NOPASSWD: ALL

그러나 일반적인 명령 암호 요청 방법을 사용하려면 파일을 유지하고 사용자를 "sudo" 그룹에 추가해야 sudo합니다 . 그런 다음 해당 변경을 /etc/sudoers수행 하고 비밀번호 로그인을 허용하지 않으면 됩니다./etc/ssh/sshd_config

일반적으로 Ubuntu는 일반 사용자가 일부 중요한 그룹에 속하도록 설정됩니다. groups터미널에 입력하여 기본 사용자가 속한 그룹을 확인할 수 있습니다 .

이것이 나에게 보여주는 내용이지만 출력은 다를 수 있습니다.

$ groups
<users-own-group> adm cdrom sudo dip plugdev lpadmin sambashare

광범위한 권한이 없어야 하는 일반 사용자는 최소한 에 있어야 합니다 cdrom, plugdev, lpadmin. 그러나 sudo 사용자를 생성하고 있으므로(적어도 원하는 것 같습니다) 그에 따라 사용자를 그룹에 추가해야 합니다. 위 명령을 사용하여 그룹을 연결할 수 있습니다 ,. 그러나 sambashare삼바가 설치되어 있지 않으면 해당 그룹이 필요하지 않을 수도 있습니다.

usermod -aG <group1>, <group2> <username>

관련 정보