수정 됨 : sudo : tty가없고 askpass 프로그램이 지정되지 않았습니다.



문제를 제거하기 위해 도구를 사용해보십시오

no tty present 및 no askpass program specified output line은 실제로 문제의 원인을 파악하지 못하기 때문에 도움이되지 않는 ssh 오류 메시지 중 하나입니다. 아마도 메시지를 볼 때 실제로 일종의 유효한 TTY로 작업하고있을 것이고 아마도 ssh를 통해 sudo 암호를 입력하는 것을 잘 처리했을 것입니다. 구문 오류를 처리 할 가능성이 높지만 메시지는이 사실을 직접적으로 다루지 않습니다.



이것은 ssh 자체와 관련된 문제이므로 Linux, FreeBSD, macOS 및 Microsoft Windows에서 Cygwin의 Unix 서비스에서 문제를 재현 할 수 있습니다. 다행히도 이러한 모든 플랫폼에서 수정 사항은 거의 동일해야합니다.



방법 1 : ssh 용 터미널 찾기

이미 터미널에서 작업하고 있지만 ssh는이를 인식하지 못할 수 있습니다. 명령 프롬프트 창 안에 있다는 사실에도 불구하고 여전히 TTY 터미널 에뮬레이터를 찾으려고 할 수 있습니다. 이를 테스트하려면 오류를 재현 해보십시오. 예제로 사용할 가상 머신을 구성하고 ssh user@linuxtest.example‘sudo /var/mail/startup.sh’ 테스트로. 당연히 명령 및 ssh 행을 수행하려는 작업과 일치하는 것으로 변경하고 싶을 것입니다.



자신이 생각했던 서버에 로그인하고 있는지 확인해야합니다. 그럼에도 불구하고 sudo : no tty present 및 no askpass program specified 오류 메시지가 계속 수신되는지 확인하십시오. 여전히 수신중인 경우 세 번 표시되며 Debian 또는 Ubuntu에서 로컬로 sudo를 실행하는 경우와 같은 방식으로 비밀번호를 입력하라는 메시지가 표시 될 수도 있습니다.

ssh 뒤에 -t를 추가하여 구문 오류를 수정하십시오. 10 번 중 9 번은 ssh가 가상 TTY를 자신에게 할당하고 실제 터미널 내부에서 실행되는 것처럼 가장합니다. 명령에 대해 다른 것을 변경할 필요가 없습니다. ssh 문자 뒤에 -t 옵션을 추가 한 다음 호스트와 전달 된 명령을 동일하게 유지하십시오. 명령의 후반부에서 ssh를 실행해야하는 경우에도이를 염두에 두어야합니다.



예를 들어 다음과 같은 형식의 명령을 실행할 때 이와 동일한 종류의 오류가 발생하는 경우 ssh -t user@linuxtest.example‘ssh user@linuxtest2.example’ 이를 방지하려면 첫 번째 ssh 이후에 -t 옵션을 유지해야합니다. 나중에 데이터를 생성하거나 사용하도록 두 번째 명령을 변경 한 경우 -t를 전혀 사용하지 않을 것입니다. 예를 들어, 스크립트 대신 cat 실행을 시작한 경우 터미널을 할당 할 필요가 없기 때문에 -t를 덤프 할 수 있습니다.

방법 2 : visudo 파일 패치

이 오류를 생성하는 구성 문제가있을 수도 있습니다. 다음을 실행하여 visudo 파일을 수정합니다. sudo visudo 다른 방법으로이 파일을 편집하고 싶지 않을 것입니다. ALL = NOPASSWD라는 줄과 그 뒤에 관리자의 암호를 입력 할 필요가없는 명령 유형이있는 줄을 찾아야합니다.

각 개별 명령은 줄의 마지막 명령을 제외하고 쉼표로 끝나야합니다. 따라서 / sbin / poweroff / sbin / start / sbin / stop과 같은 내용이있는 경우이 모든 항목을 단일 명령으로 처리하고 오류를 발생시킵니다. 마찬가지로 ssh를 통해 실행하려는 명령이 누락 된 경우에도이 오류가 발생합니다. 오류가 여전히 재현 가능한지 확인하기 전에 필요한 조정을하고 파일을 저장하십시오.

그렇게하고 서비스를 다시 시작한 후에도 여전히 오류가 발생하면 아래 이미지의 다음 명령 PermitTTY 라인 뒤에 yes라는 ​​단어가 있는지 확인하십시오. 이것이 파일의 마지막 줄이면 나중에 빈 줄 바꿈이 있는지 확인하십시오. GNU nano는 기본적으로이 작업을 자동으로 수행합니다.

오류 메시지를 다시 재현하기 전에 모든 관련 서비스를 다시 시작해야합니다.

3 분 읽기