sudo over ssh: tty yok ve askpass programı belirtilmedi


15

Bu hatayı almaya devam ediyorum ve bunu düzeltmek için çevrimiçi olarak tartışılan birkaç yol denedim ve hiçbiri benim için çalışmıyor. Ben çalıştırdığınızda bu yüzden kurulum SSH tuşları var 'ssh newton@host.com'o zaman otomatik giriş kaydeder Ben de bu kullanıcıyı belirledik, visudoolmaya 'newton ALL=(ALL:ALL) ALL' Sonra da ekleme çalıştı'newton ALL=NOPASSWD: /var/www/script.sh'

Ne yazık ki, her ssh newton@host.com 'sudo /var/www/script.sh'Cygwin'den kaçtığımda geri dönüyorum. Ayrıca eklemeyi denedim -t -tama sonra parola istiyor.

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

Bu Cygwin'e özgü değildir; Aynı problemi ssh example.com sudo echo hellobir Linux sisteminden diğerine kullanırken de görüyorum . Başlığınızı buna göre güncelledim. Ayrıca Unix sitesine geçiş sorunuzu da işaretledim.
Keith Thompson

Yanıtlar:


10

Çalıştırmak için bir terminalinizin olması gerekir sudo böylece sizden şifre isteyebilir. Bir komutu sshiletirseniz, siz geçmedikçe komutun bir terminale ihtiyaç duymadığını ve bir tane oluşturmadığını varsayar -t. Bakın SSH içindeki SSH daha ayrıntılı bir açıklama için "stdin: tty değil" ile başarısız oluyor .

Şifreyi ile bile giremiyorsanız, -tsorununuz Windows nedeniyle olabilir. Windows konsolu bir unix terminalini tamamen taklit etmez; Cygwin uygulamalarının bu durumlarda bir terminali doğru şekilde taklit etmeleri konusunda bazı zorluklar olabilir (bundan emin değilim, not edin). Sorun buysa, Console2 veya Mintty (Cygwin dağıtımına dahil) sshgibi bir terminal öykünücüsünün içinde çalıştırın - bkz . Windows 7'de Cygwin ile bir kabuk kullanmanın en iyi yolu .

SSH şifresinin sudo kimlik doğrulaması için şifrenizi değiştirmesini beklediyseniz, bu gerçekleşmez. Sudo bir şifre gerektirir ( NOPASSWDetiketi sudoers dosyasına eklemezseniz ). Hala bile, bir terminale olması gerektiğini Not NOPASSWDeğer requirettyopsiyon Sudoers dosyasında ayarlanır.

Kök hesabına (genellikle güvenlik açısından iyi bir fikir değildir) şifresiz giriş yapmak istiyorsanız, kök hesabına ulaşmak için SSH'yi kullanın, tercihen iki atlamada. Bkz. SSH içindeki SSH "stdin: tty değil" ile başarısız oluyor ( root@host.comfor ile birlikte otheruser@computertwo.com).


3

Nodejs command / binary için bir şifre etkinleştirmek istemeyelim.

Visudo'yu değiştir

sudo visudo

Bir komut için şifre etkinleştirmek için aşağıdaki satırla. Geçiş, her komuttan sonra virgül ve boşluk içeren birden çok komuttur.

<user name> ALL = NOPASSWD: /usr/local/bin/node

ex. sunthara ALL = NOPASSWD: /usr/local/bin/node

resim açıklamasını buraya girin


1

Ssh-server yapılandırma dosyasını düzenleyin ve en altına ekleyin:

root# vim /etc/ssh/sshd_config

Match User newton
    PermitTTY yes

service sshd restart/etc/ssh/sshd_config: line 91: Bad configuration option: User
Çalışmıyor

Değiştirilmesi gerekebilirMatch User newton
ILMostro_7

1
Hayır User, sshd dosyanıza yazamayacağınız anlamına gelir , çünkü bu yapılandırma seçeneği yoktur. (en azından benim sistemimde bu durum Ubuntu 16.04)
kiltek

Man-sayfalarından: "Match: Koşullu bir blok oluşturur. Eşleşme satırındaki ölçütlerin tümü karşılanırsa, aşağıdaki satırlardaki anahtar kelimeler, başka bir Eşleşme satırı veya sonuna kadar yapılandırma dosyasının genel bölümünde ayarlanan anahtar kelimeleri geçersiz kılar. Eşleştirilecek bağımsız değişkenler bir veya daha fazla ölçüt kalıbı çiftidir Kullanılabilir ölçütler Kullanıcı, Grup, Ana Bilgisayar ve Adres'tir Eşleşme kalıpları tek girişlerden veya virgülle ayrılmış listelerden oluşabilir ve joker karakter ve olumsuzlamayı kullanabilir ssh_config (5) 'in PATTERNSbölümünde açıklanan işleçler. "
ILMostro_7

Match
Cevabında

0

/ Etc / sudoers dizininde bir hata yaptığımda bu hatayla karşılaştım. Bunun gibi birden çok komut belirtmek yerine:

NOPASSWD= /bin/x, /bin/y

Olarak kaydettim:

NOPASSWD= /bin/x /bin/y

yani virgül olmadan. Şimdi denediğimde şimdiki mesaj yok

ssh host 'sudo x'

0

İlişkili olup olmadığını bilmiyorum ama sudoers dosyasında '... NOPASSWD: /xyz/script.shl' vardı, ben dosyanın #!/bin/shellnameüstündeki satırı dahil kadar ben bu hata mesajı var /xyz/script.shl.


0

/ etc / sudoers dosyasındaki aşağıdaki parametreleri yorumlamak bana yardımcı oldu.

# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
#         You have to run "ssh -t hostname sudo <cmd>".
#
Defaults    requiretty

#
# Refuse to run if unable to disable echo on the tty. This setting should also be
# changed in order to be able to use sudo without a tty. See requiretty above.
#
Defaults   !visiblepw

---> parametreleri aşağıdaki gibi yorumlayın

#Defaults    requiretty
#Defaults   !visiblepw
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.