
저는 Oracle Cloud의 사전 생성된 키 쌍이 비밀번호 없이 Linux 서버에 로그인할 수 있고 비밀번호 없이 sudo에도 로그인할 수 있다는 것을 확인했습니다. 내가 아는 다른 곳에서는 이 상황을 재현할 수 없습니다.
Oracle Cloud와 타사의 차이점은 OOBE에서도 사용자 ubuntu
(Ubuntu의 경우, Oracle Linux의 경우 기본 사용자는 입니다 opc
. 제가 사용하는 배포판이든 opc
사용자는 항상 생성됩니다)도 생성한다는 점입니다. Oracle Cloud 서버는 root
기본적으로 사용자를 사용하지 않는 것 같습니다 . 그래서 나는 Oracle Cloud Agent
sudo user 와 함께 작동하는 것이 설치 되어 있다는 것을 깨달았습니다 opc
. 해당 소프트웨어가 sudo 인증을 처리합니까? (근데 /etc/pam.d
다른 곳을 확인해 보니 이 파일들은 바닐라 상태로 남아 있었습니다.)
다른 사이트에서는 pam 모듈을 설정하라고 했지만 libpam-ssh-agent-auth
그것은 수년 동안 업데이트가 없는 오래된 프로젝트입니다. 많은 서버에서 시도했지만 작동하지 않습니다. (많은 배포판이 패키지 관리자에서 이 pam 모듈을 제거하지 않았지만)
누군가가 이것을 달성하는 방법을 말해 줄 수 있다면 감사하겠습니다.
답변1
스도
sudo 그룹(또는 이에 상응하는 그룹)의 사용자를 허용하려면 sudo 구성을 변경할 수 있습니다. 이것을 다음에 추가하십시오/etc/sudoers (visudo를 루트로 사용)
%sudo ALL=(ALL) NOPASSWD: ALL
사용자는 sudo 그룹의 구성원이어야 합니다.
또는 특정 사용자 한 명만:
username_here ALL = (ALL) NOPASSWD: ALL
SSH 키
비밀번호 없이 사용자로 로그인하려면 로그인하려는 계정에 공개 SSH 키를 추가해야 합니다.
이를 수행하는 올바른 방법은 ssh-copy-id를 사용하는 것입니다.
ssh-copy-id [email protected]
그러면 공개 키가 지정된 사용자의 홈 폴더에 추가됩니다..ssh/authorized_keys
원하는 경우 수동으로 복사할 수도 있습니다. 이 파일(로컬 컴퓨터)의 출력을.ssh/authorized_keys사용자 파일(서버에 있음):
cat ~/.ssh/id_rsa.pub
답변2
일반적으로 클라우드 이미지가 실행됩니다.cloudinit
고유한 인스턴스에 대한 일반 이미지를 초기화하고 사용자 정의하기 위해 시작될 때.
Cloudnit은 일반적인 작업을 수행할 수 있고 일반적으로 수행하지만 일반적으로 특정 클라우드 공급자 메타 데이터 서비스와 상호 작용하여 공급업체 및/또는 사용자 데이터를 로드하도록 구성됩니다. 해당 메커니즘은 일반적으로 클라우드 공급자에 업로드한 개인 공개 SSH 키를 인스턴스에서 프로비저닝하고 관련 개인 키로 로그인할 수 있도록 하는 것입니다.
Cloud init는 사용자 배포, SSH 키 및/또는 비밀번호 설정, 새로 배포된 사용자에 대한 sudo 권한 등 다양한 작업을 수행할 수 있습니다.
자신의 사용자 데이터를 활성화하여 cloud init의 기능을 (추가로) 사용자 정의하는 방법은 클라우드 공급업체에 따라 다릅니다.