
비밀번호가 없는 루트 사용자로 구성된 Fedora VPS가 있습니다. SSH 키로 로그인합니다.
해당 서버에는 웹 관리에 사용되는 권한이 낮은 또 다른 계정이 있었습니다. 이제 비밀번호도 삭제했습니다.
예를 들어, 서버에 비밀번호를 가진 사용자가 없다면 SSH 키를 분실하면 정확히 어떻게 될까요? 서버에 로그인할 방법이 없기 때문에 서버를 영원히 사용할 수 없게 됩니까?
또한 sudo
루트나 호출 사용자 모두 암호를 갖고 있지 않은 경우 프로그램은 어떻게 작동합니까? 시도해 보았는데 비밀번호를 묻지도 않았습니다. user ALL=(ALL) ALL
sudoers 파일에 해당 줄이 있으므로 제대로 작동했습니다(변경해야 할까요?).
답변1
파일 의 두 번째 필드를 제거하면 /etc/passwd
사용자는 인증 확인 없이 로그인할 수 있습니다. 단순히 로그인을 시도하면 로그인이 허용됩니다. 따라서 이와 같은 작업은 아마도 수행하고 싶지 않은 작업일 것입니다.
root:$1$iM/2lekk$rXUAcF5fY8ddLL.B1bkH63:12242:0:99999:7:::
/etc/passwd 입문서
- 사용자 이름: 사용자가 로그인할 때 사용됩니다. 1~32자 사이여야 합니다.
- 비밀번호: x 문자는 암호화된 비밀번호가 /etc/shadow 파일에 저장되어 있음을 나타냅니다.
- 사용자 ID(UID): 각 사용자에게는 사용자 ID(UID)가 할당되어야 합니다. UID 0(영)은 루트용으로 예약되어 있고 UID 1-99는 사전 정의된 다른 계정용으로 예약되어 있습니다. 추가 UID 100-999는 관리 및 시스템 계정/그룹을 위해 시스템에 의해 예약되어 있습니다.
- 그룹 ID(GID): 기본 그룹 ID(/etc/group 파일에 저장됨)
- 사용자 ID 정보: 댓글 필드입니다. 사용자 이름, 전화번호 등과 같은 사용자에 대한 추가 정보를 추가할 수 있습니다. 이 필드는 손가락 명령으로 사용됩니다.
- 홈 디렉터리: 사용자가 로그인할 때 위치하게 될 디렉터리의 절대 경로입니다. 이 디렉터리가 없으면 사용자 디렉터리는 /가 됩니다.
- 명령/셸: 명령 또는 셸의 절대 경로(/bin/bash)입니다. 일반적으로 이는 쉘입니다. 반드시 쉘일 필요는 없습니다.
에서 빌린/etc/passwd 파일 형식 이해
비밀번호 로그인 비활성화
:x:
이 필드가 비어 있고 x( ) 가 포함된 것과 파일 :!:
에 a가 포함된 것 사이에는 미묘한 차이가 있습니다 /etc/shadow
. 이는 계정이 의도적으로 로그인이 허용되지 않도록 설정되어 있음을 의미하며, 이는 아마도 귀하가 원하는 것일 것입니다.
/etc/shadow
root:!:15669:0:99999:7:::
ssh
모든 계정에 대해 동일한 작업을 수행할 수 있습니다. 공개/개인 키를 사용한 로그인 만 허용하려는 경우 이 방법을 권장합니다 .
다른 질문
예를 들어, 서버에 비밀번호를 가진 사용자가 없다면 SSH 키를 분실하면 정확히 어떻게 될까요? 서버에 로그인할 방법이 없기 때문에 서버를 영원히 사용할 수 없게 됩니까?
서버에 물리적으로 액세스할 수 있는 한 언제든지 시스템에 액세스할 수 있습니다. 재부팅이 필요하며 VPS를 사용하는 것이 약간 어려울 수 있지만 가능할 것입니다.
일반적으로 시스템을 단일 사용자 모드로 부팅하면 필요에 따라 /etc/passwd
& /etc/shadow
파일을 편집할 수 있습니다.
또한 루트나 호출 사용자 모두 비밀번호가 없을 때 sudo 프로그램은 어떻게 작동합니까? 시도해 보았는데 비밀번호를 묻지도 않았습니다. sudoers 파일에 해당 사용자 ALL=(ALL) ALL 줄이 있기 때문에 그냥 작동했습니다. (변경해야 할까요?)
예, 비밀번호가 없으면 사용이 sudo
더 어려워집니다. 를 처리할 때 다른 소스를 사용하는 방법이 있습니다 sudo
. 다음 제목의 U&L Q&A를 참조하세요.sudo 비밀번호를 로그인 비밀번호와 다르게 설정하세요..
답변2
"비밀번호 삭제"라고 할 수 있는 몇 가지 사항이 있다는 점에 유의하세요. 리눅스의 경우:
passwd -d USER
비밀번호 없이 로그인할 수 있도록 계정을 설정합니다. (일부 서비스, 특히 ssh는 이 경우 로그인을 차단하도록 설정되는 경향이 있습니다.)passwd -l USER
계정의 비밀번호를 잠급니다. 비밀번호는 허용되지 않습니다. SSH 키나 sudo와 같은 다른 방법으로 로그인하는 것은 여전히 가능합니다.`usermod -e 1 USER
계정을 잠급니다(비밀번호 만료일을 과거 날짜로 설정). 어떤 서비스를 통해서도 이 계정에 로그인할 수 없게 됩니다.
나는 당신이 두 번째 의미를 언급하고 있다고 가정합니다. 이 계정은 비밀번호로 로그인할 수 없도록 만들었지만 여전히 키를 사용하여 ssh를 통해 또는 sudo를 통해 액세스할 수 있습니다.
계정의 비밀번호를 비활성화하면 더 이상 sudo를 사용할 수 없습니다.sudo가 비밀번호를 다시 묻는 메시지를 표시하지 않는 유예 기간이 있습니다. 그 후, 기본 구성을 특이한 방법으로 변경하지 않는 한 sudo는 비밀번호를 묻는 메시지를 표시하며 더 이상 비밀번호가 없기 때문에 비밀번호를 입력할 수 없습니다. 이는 태그가 있는 sudoers 규칙에는 적용되지 않습니다 NOPASSWD
.
비밀번호를 제거한다고 해서 강력한 비밀번호를 선택하는 것보다 시스템이 더 안전해지는 것은 아닙니다. VPS가 가상 콘솔에 로그인하는 방법을 제공하는 경우 루트 계정에 대해 길고 임의의 비밀번호를 생성하고 작동하는지 테스트한 후 인쇄하여 종이를 금고에 넣으십시오. 이렇게 하면 문제가 발생한 경우(예: "죄송합니다. ssh에서 잠겼습니다." 또는 "죄송합니다. sudo에서 잠겼습니다.") 시스템에 대한 액세스를 복구할 수 있습니다. 귀하의 계정에 대해 기억할 수 있는 더 짧은 비밀번호를 선택하고, SSH 로그인에 대한 비밀번호를 비활성화하고(선택 사항) sudo
루트가 되려면 비밀번호를 입력하세요 . 일반 계정에서 루트까지 추가 인증 수준을 갖는 것은 루트가 아닌 계정에 감지되지 않은 트로이 목마를 심는 것이 훨씬 어렵기 때문에 유용합니다.
답변3
대부분의 경우 비밀번호가 없어도 괜찮습니다.
예, SSH 키를 통한 인증만 허용하고 SSH 키를 분실한 경우 더 이상 로그인할 수 없습니다. 이 경우 라이브 CD를 부팅하고 원래 시스템을 마운트하고 루트 비밀번호를 추가할 수 있습니다. (그런 옵션이 없다면 만약을 대비해 루트 비밀번호를 가지고 있는 것이 더 나을 수도 있습니다.)
Sudo는 비밀번호를 묻지 않도록 구성할 수 있습니다. NOPASSWD:
이것을 활성화하는 옵션이 있습니다 . (보다 man sudoers
.)
인증에 사용할 수 있는 다른 방법이 많이 있다는 점에 유의하세요. 구성하여 활성화할 수 있습니다.팸체계.