Wciąż otrzymuję ten błąd i próbowałem kilka sposobów omówienia online, aby to naprawić, i żaden nie działa dla mnie. Mam klucze SSH konfiguracji tak gdy uruchamiam 'ssh [email protected]'
go automatycznie loguje mnie, mam również ustawić tę użytkownika w visudo
celu być 'newton ALL=(ALL:ALL) ALL'
ja wtedy też próby dodania'newton ALL=NOPASSWD: /var/www/script.sh'
Niestety za każdym razem, gdy ssh [email protected] 'sudo /var/www/script.sh'
uciekam z Cygwin, wracam. Próbowałem również dodać, -t -t
ale wtedy monituje mnie o hasło.
total size is 21209180 speedup is 314.69
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts
ssh example.com sudo echo hello
z jednego systemu Linux na inny. Zaktualizowałem odpowiednio twój tytuł. Oflagowałem również twoje pytanie do migracji na stronę Unix.Odpowiedzi:
Musisz mieć dostępny terminal do uruchomienia,
sudo
aby mógł monitować o hasło. Jeśli przekażesz poleceniessh
, oznacza to, że polecenie nie potrzebuje terminala i nie tworzy go, chyba że przekażesz-t
. Zobacz SSH wewnątrz SSH nie powiedzie się z „stdin: nie jest tty” dla bardziej szczegółowego wyjaśnienia.Jeśli nawet nie możesz wprowadzić hasła
-t
, możliwe, że przyczyną problemu jest system Windows. Konsola Windows nie emuluje całkowicie terminala unixowego; w takich okolicznościach aplikacje Cygwin mogą mieć trudności z prawidłową emulacją terminala (nie jestem tego pewien, zauważ). Jeśli to jest problem, uruchomssh
emulator terminala, taki jak Console2 lub Mintty (zawarty w dystrybucji Cygwin) - zobacz Najlepszy sposób użycia powłoki z Cygwin w Windows 7 .Jeśli spodziewałeś się, że hasło SSH zastąpi twoje hasło do uwierzytelnienia w sudo, tak się nie stanie. Sudo wymaga hasła (chyba że dodasz
NOPASSWD
znacznik do pliku sudoers). Pamiętaj, że nadal musisz mieć terminal, nawet zNOPASSWD
, jeślirequiretty
opcja jest ustawiona w pliku sudoers.Jeśli chcesz zalogować się do konta roota bez hasła, co nie jest dobrym pomysłem z punktu widzenia bezpieczeństwa, użyj SSH, aby uzyskać dostęp do konta root, najlepiej w dwóch przeskokach. Zobacz SSH wewnątrz SSH kończy się niepowodzeniem z „stdin: is not tty” (z
[email protected]
for[email protected]
).źródło
Niech nie chcesz włączać hasła dla polecenia / binarnego nodejs.
Zmodyfikuj visudo
Z następującym wierszem, aby włączyć hasło dla polecenia. Podaj to wiele poleceń z przecinkami i spacją po każdym poleceniu.
dawny.
sunthara ALL = NOPASSWD: /usr/local/bin/node
źródło
Edytuj plik konfiguracyjny ssh-server i dołącz u dołu:
źródło
service sshd restart
=>/etc/ssh/sshd_config: line 91: Bad configuration option: User
Match User newton
User
do pliku sshd, ponieważ ta opcja konfiguracji nie istnieje. (przynajmniej tak jest w moim systemie Ubuntu 16.04)Match
bloku w twojej odpowiedzi ...Napotkałem ten błąd, kiedy popełniłem błąd w / etc / sudoers. Zamiast określać wiele takich poleceń:
Zapisałem jako:
tzn. bez przecinka. Teraz, gdy próbuję, dostaję komunikat „ Nie mam obecnego tty”
źródło
Nie wiem, czy jest to powiązane, ale kiedy miałem plik „... NOPASSWD: /xyz/script.shl” w pliku sudoers, dostałem ten komunikat o błędzie, dopóki nie zamieściłem
#!/bin/shellname
wiersza na początku/xyz/script.shl
pliku.źródło
komentowanie poniższych parametrów w pliku / etc / sudoers pomogło mi.
---> skomentuj parametry w następujący sposób
źródło