Düzeltildi: sudo: tty yok ve askpass programı belirtilmemiş



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

Yok tty ve hiçbir askpass programı belirtilmemiş çıktı satırı, soruna neden olan şeyin tam olarak ne olduğu noktaya gelmediği için gerçekten o kadar yararlı olmayan ssh hata mesajlarından biridir. Büyük olasılıkla, mesajı gördüğünüzde aslında geçerli bir TTY ile çalışıyorsunuzdur ve muhtemelen sudo şifrenizi ssh üzerinden girmekle uğraşmışsınızdır. Büyük olasılıkla bir sözdizimi hatasıyla uğraşıyorsunuz, ancak mesaj bu gerçeği doğrudan ele almıyor.



Bu, ssh'ın kendisiyle ilişkili bir sorun olduğundan, sorunu Linux, FreeBSD, macOS ve Cygwin’in Unix hizmetlerinde Microsoft Windows üzerinde yeniden oluşturabileceksiniz. Neyse ki, düzeltme bu platformların hepsinde hemen hemen aynı olmalı.



Yöntem 1: ssh için bir Terminal Bulma

Muhtemelen zaten bir terminalden çalışıyor olsanız da, ssh muhtemelen bunun farkında değildir. Komut istemi penceresinin içinde olmanıza rağmen, hala bir TTY terminal öykünücüsü aramaya çalışıyor olabilir. Bunu test etmek için hatayı yeniden oluşturmayı deneyin. Örnek olması için bir sanal makine yapılandırdık ve ssh user@linuxtest.example 'sudo /var/mail/startup.sh' bir test olarak. Doğal olarak, komut ve ssh satırını yapmaya çalıştığınız şeyle eşleşen bir şeye değiştirmek isteyeceksiniz.



Olduğunu sandığınız sunucuya giriş yaptığınızdan emin olmak isteyeceksiniz. Ne olursa olsun, sudo: no tty'yi alıp almadığınızı kontrol edin ve hiçbir askpass programı belirtilmedi hata mesajı. Büyük olasılıkla, eğer hala alıyorsanız, onu üç kez görürsünüz ve muhtemelen sudo'yu Debian veya Ubuntu'da yerel olarak çalıştırıyorsanız yapacağınız şekilde şifrenizi girmeniz istenir.

Sözdizimi hatasını düzeltmek için ssh'den sonra -t eklemeyi deneyin. Onda dokuz bu, ssh'yi kendisine sanal bir TTY tahsis etmeye zorlar ve gerçek bir terminalin içinde çalışıyormuş gibi davranır. Komutunuzla ilgili başka hiçbir şeyi değiştirmenize gerek yok. Basitçe ssh harflerinden sonra -t seçeneğini ekleyin ve ardından ana bilgisayarı ve geçen komutu aynı tutun. Komutunuzun ikinci kısmında ssh çalıştırmanız gerekirse, bunu da aklınızda bulundurmanız gerekir.



Örneğin, şu şekilde biçimlendirilmiş bir komutu çalıştırırken aynı türden bir hatayı alıyorsanız ssh -t kullanıcı@linuxtest.example 'ssh kullanıcı@linuxtest2.example' Bunu önlemek için ilk ssh'den sonra -t seçeneğini tutmanız gerekir. Daha sonra ikinci komutu veri üretecek veya tüketecek şekilde değiştirirseniz, -t'yi hiç kullanmak istemeyeceğinizi unutmayın. Örneğin, komut dosyası yerine cat çalıştırmaya başladıysanız, bunun için bir uçbirim ayırmanıza gerek kalmayacağından -t'yi dökebilirsiniz.

Yöntem 2: Visudo Dosyasına Yama Yapma

Ayrıca, bu hatayı üreten bir yapılandırma sorununuz olabilir. Visudo dosyasını düzenleyerek değiştirin. sudo visudo komutunu verin ve bu dosyayı asla başka bir şekilde düzenlemek istemeyeceğinizi unutmayın. İçinde ALL = NOPASSWD yazan bir satır ve ardından çalıştırmak için yöneticinin şifresini girmenize gerek olmayan komut türlerini bulmalısınız.

Satırdaki son komut dışında her bir komutun virgülle bitmesi gerekir. Böylece, / sbin / poweroff / sbin / start / sbin / stop gibi bir şey okuyan bir şeyiniz varsa, bunların hepsini tek bir komut olarak ele alacak ve hatayı size atacaktır. Aynı şekilde, ssh aracılığıyla çalıştırmaya çalıştığınız bir komutu kaçırıyorsanız, bu hatayı da alırsınız. Hatanın hala tekrarlanabilir olup olmadığını kontrol etmeden önce gerekli ayarlamaları yapın ve dosyayı kaydedin.

Bunu yaptıktan ve hizmeti yeniden başlattıktan sonra da hala hatayı görüyorsanız, aşağıdaki resimde aşağıdaki komutu takip edin ve PermitTTY satırının kendisinden sonra evet kelimesini içerdiğinden emin olun. Dosyanızdaki son satır buysa, daha sonra boş bir yeni satır olduğundan emin olun. GNU nano, bu görevi varsayılan olarak otomatik olarak gerçekleştirir.

Hata mesajını yeniden oluşturmayı denemeden önce ilgili hizmetleri yeniden başlatmanız gerekecektir.

3 dakika okundu