.ssh / authorized_keys를 설정하고 pub / private 키를 사용하여 새로운 "user"로 로그인 할 수 있습니다 ... 또한 sudoers 목록에 "user"를 추가했습니다 ... 지금 문제는 언제입니다 다음과 같은 간단한 sudo 명령을 실행하려고합니다.
$ sudo cd /root
암호를 입력하라는 메시지가 표시되지만 작동하지 않습니다 (설정 한 개인 키 암호를 사용하고 있습니다)
또한 다음을 사용하여 사용자의 비밀번호를 비활성화했습니다
$ passwd -l user
내가 무엇을 놓치고 있습니까?
어딘가에 나의 초기 언급이 잘못 이해되고 있습니다 ...
시스템을 강화하려고합니다 ... 궁극적 인 목표는 pub / private 키를 사용하여 로그인과 간단한 암호 인증을 수행하는 것입니다. certified_keys 파일을 통해 모든 것을 설정하는 방법을 알아 냈습니다.
또한 궁극적으로 루트 계정을 통한 서버 로그인을 방지합니다. 그러나 그렇게하기 전에 두 번째 사용자 (항상 시스템에 로그인 할 사용자)를 위해 sudo가 필요합니다.
이 두 번째 사용자의 경우 "passwd -l user ..."를 통해 사용자를 잠그지 않으면 정기적 인 비밀번호 로그인을 방지하고 공개 / 비공개 키 로그인 만 강제 실행하려고합니다. 그런 다음 키를 사용하지 않으면 여전히 일반 비밀번호로 서버에 접속하십시오.
그러나 더 중요한 것은 암호가 비활성화 된 사용자와 함께 술집 / 개인 키 설정을 사용하려면 sudo를 가져와야한다는 것입니다.
편집 : 좋아, 나는 그것을 가지고 있다고 생각한다 (해결책) :
1) / etc / ssh / sshd_config를 조정하고 설정했습니다. PasswordAuthentication no
이것은 ssh 비밀번호 로그인을 방지합니다 (이 작업을 수행하기 전에 공개 / 개인 키 설정이 작동하는지 확인하십시오)
2) sudoers 목록을 조정 visudo
하고 추가했습니다.
root ALL=(ALL) ALL
dimas ALL=(ALL) NOPASSWD: ALL
3) root는 비밀번호가있는 유일한 사용자 계정입니다. 비밀번호가 설정되지 않은 두 개의 사용자 계정 "dimas"및 "sherry"로 테스트 중입니다 (비밀번호는 비어 있음 passwd -d user
)
위의 내용은 기본적으로 모든 사람이 암호를 사용하여 시스템에 로그인하는 것을 방지합니다 (공개 / 개인 키를 설정해야 함).
또한 sudoers 목록의 사용자에게는 관리 기능이 있습니다. 그들은 또한 su
다른 계정에 할 수 있습니다. 따라서 기본적으로 "dimas"는 할 수 sudo su sherry
있지만 "dimas는 할 수 없습니다 su sherry
. 마찬가지로 sudoers 목록에없는 모든 사용자는 su user
또는 할 수 없습니다 sudo su user
.
참고 위의 방법으로 작동하지만 보안이 취약한 것으로 간주됩니다. "dimas"또는 "sherry"사용자로 코드에 액세스 할 수있는 모든 스크립트는 루트 액세스 권한을 얻기 위해 sudo를 실행할 수 있습니다. 설정, Firefox와 같은 원격 코드 실행 또는 사용자가 원치 않는 코드를 실행할 수있는 다른 결함에도 불구하고 원격 사용자가 로그인 할 수있는 ssh의 버그는 이제 루트로 실행할 수 있습니다. Sudo는 항상 비밀번호를 요구해야합니다. 그렇지 않으면 다른 사용자 대신 루트로 로그인 할 수도 있습니다.