비밀번호를 묻지 않고 SSH를 통해 sudo 명령을 활성화하는 방법은 무엇입니까?


13

서버 A와 서버 B (Ubuntu 10.04 LTS)가 다른 작업을 수행하고 있습니다. 서버 A는 서버 B를 찔러 파일을 생성하고 완료되면 서버 A로 다시 보냅니다. 이것은 모두 사내이며 보안 문제에 대해서는 너무 걱정하지 않습니다. SSH 키 교환은 이미 서버 A와 B 사이에서 수행되며 정상적으로 작동합니다.

서버 B에서 스크립트 generateOfflineSig는 다음과 같습니다.

#!/bin/bash
echo "in script"
sudo apt-offline set offline_package.sig --install-packages "$0"
echo "after sudo"
scp offline_package.sig jeff@servera:/tmp

또한 서버 B에서 visudo에는 다음 항목이 있습니다.

jeff ALL=NOPASSWD: ALL

sudo ls서버 B에서 실행하면 작동 하지만 암호를 묻지 않아도됩니다.

불행히도 SSH는 항상 서버 A에서 암호를 요청합니다.

jeff@servera:~$ ssh -t jeff@serverb /home/jeff/generateOfflineSig "incron"
in script
[sudo] password for jeff:

어떤 아이디어? 비밀번호 입력으로이 프로세스를 중단 할 수 없습니다.


/etc/sudoers구문을 100 % 확신 할 수 없지만 파일에 줄이 # %wheel ALL=(ALL) NOPASSWD: ALL있습니다. 아마 당신의 라인은 jeff ALL=(ALL) NOPASSWD: ALL?
— snapshoe

전체 원격 명령을 따옴표로 묶을 필요는 없습니까? Sever A
— TheLQ

실은 ... 나는 스냅 슈가 뭔가에 있다고 생각합니다. 나는 나중에 내 자신의 질문에 대답 할 것입니다 ...
— Jeff

답변:


16

/etc/sudoers파일 에 "오타"가있는 것 같습니다 ...

jeff ALL=NOPASSWD: ALL

파일 의 맨 끝에 있어야했습니다 . Ubuntu 도움말 은 파일 끝에 덧셈 (...) 만 표시 합니다 (끝이 없으면 나중에 입력하여 무효화 할 수 있음).

그 후에는 암호가 "jeff 's sudo 명령에 대해 로컬 또는 SSH를 통해 묻지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.