다음 줄은 Red Hat 5.5에서 사용할 수 있는 생성자를 보여줍니다.
$ echo "foo" | ssh myhost "echo \"cat <&1\" | su --login"
foo
사실 나는 cat이 FD #1을 읽을 수 있는 이유를 전혀 이해하지 못했지만 작동합니다.
이제 Red Hat 6.3은 더 이상 작동하지 않습니다.
$ echo "foo" | ssh myhost "echo \"cat <&1\" | su --login"
cat: -: Bad file descriptor
첫 번째 질문: 왜 이것이 더 이상 작동하지 않습니까? 두 번째 질문: Red Hat 6.3에서 작동하는 솔루션을 아는 사람이 있습니까?
모든 아이디어를 높이 평가합니다.
아르민
답변1
ps
잠깐, 기본적으로 myhost로 ssh를 보낸 다음 비밀번호를 묻는 메시지를 표시하지 않고 루트로 즉시 su하려고 합니다. 그러면 로컬 및 원격 컴퓨터의 모든 사람이 볼 수 있도록 출력 에 루트 비밀번호를 입력하는 부작용이 있습니까 ?
응, 그러지 마.
어디에서나 작동하고 루트 비밀번호 유출을 제거하는 세 가지 방법이 있습니다(내가 선호하는 순서대로).
- root@myhost로 SSH를 통해 접속하세요. 비밀번호 프롬프트를 방지하려면 공개 키 인증을 사용하세요. 개인 키를 암호화하는 것이 가장 좋습니다(그러나 비밀번호 프롬프트를 줄이려면 SSH 에이전트 및/또는 연결 멀티플렉싱을 사용하십시오). 루트
PermitRootLogin yes
또는 공개 키로만 로그인을 허용하도록 ssh를 구성할 수 있습니다PermitRootLogin without-password
. sudo -i
지금처럼 SSH를 사용하되 루트가 아닌 사용자가 루트로 모든 명령을 실행할 수 있도록 을 사용하여su --login
sudo를 구성합니다visudo
(비밀번호 없이도 가능하지만 보안 관점에서 루트가 아닌 사용자는 루트와 동일함).su
비사용자에게 비밀번호를 묻는 메시지가 표시되지 않도록 PAM 구성을 변경하십시오 . 보안 관점에서 사용자는 다시 루트와 동일합니다.