ssh
나는 그것을 다시 시작하기 위해 다른 서버로 이동하는 스크립트를 실행하고 있습니다 dhcpd
.
스크립트에서 명령은 문자 그대로 다음을 의미합니다.
sudo ssh -n $SERVER /sbin/service dhcpd restart
스크립트를 호출할 때는 제대로 작동하지만 명령줄에서 직접 명령을 수동으로 실행하려고 하면 루트 암호를 입력하라는 메시지가 표시되고 기다립니다.
명령이 스크립트에서 호출되기 때문에 루트 비밀번호를 묻는 메시지가 표시되지 않는 이유는 무엇입니까?
또한 동일한 사용자로 두 가지를 모두 실행하고 있는지 확인했습니다. 제가 스크립트를 만들지 않았기 때문에 스크립트가 호출될 때 이런 유형의 일이 발생하도록 허용하는 마법이 있는지 확실하지 않습니다.
답변1
상황에 맞게 SSH를 설정해야 합니다. 호출 위치에 관계없이 SSH 도구 자체는 단순히 구성과 키를 읽고, 원격 서버가 키 전용 인증을 수락하는 경우 암호 프롬프트가 나타나지 않습니다. 명령을 실행하려는 사용자 아래의 원격 호스트에 키를 생성하고, 로컬 호스트에서 키 기반 인증을 활성화한 다음, 이 문자열을 호출할 사용자에 대해 "su"를 생성하십시오(사용할 방법은 무엇이든: cron). , shell 등) - 원격 키를 해당 호스트의 키로 로컬로 삽입합니다. 그게 다야!