Düzeltme: Stdin bir terminal olmadığı için sözde terminal tahsis edilmeyecek



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

Çoğu durumda, yalnızca bir komut dosyasından bir tür SSH komutu çalıştırdığınızda, kafa karıştırıcı bir 'sözde terminal tahsis edilmeyecektir çünkü stdin bir terminal değildir' hatası alırsınız. Aynı komutu komut satırından çalıştırıyorsanız, o zaman mükemmel bir şekilde çalışabilir.



Daha ileri gitmeden önce, genel anahtarınızı SSH aracısına eklediğinizden emin olun ve ardından ssh kullanmayı tekrar deneyin. Bir anahtarı kaçırmış olabilirsin. Öte yandan, bu işe yaramazsa, komut dosyanızda küçük bir sorun giderme işlemi yapmanız gerekecektir.



Yöntem 1: Sahte Tahsisatı Zorlama ve Devre Dışı Bırakma

Sorunu sizin için hızlı bir şekilde çözebilecek bir çift komut satırı seçeneği vardır. Sözde terminal tahsisini zorlamak için ssh -t -t -R'yi ve ardından bağlanmaya çalıştığınız şeyin geri kalanını deneyin. Örneğin, ornek.com'da hesabınıza giriş yapmak için ssh -p 80 appuals@ssh.example.com'u kullanacağınızı varsayalım; bu, elbette var olmayan belgeler için bir kuklatir.



Çalıştırmayı deneyin, örn. ssh -t -t -R -p 80 appuals@ssh.example.com ve bunun sorunu çözüp çözmediğine bakın. Sisteme başarılı bir şekilde giriş yapabilmek için adı elbette gerçek hesabınız ve ana bilgisayar adınızla değiştirmeniz gerekecektir. Bu, bir uçbirimin tahsisini zorlar, dolayısıyla sözde uçbirimin ayrılmayacağını görmemelisiniz çünkü stdin bir uçbirim hatası değildir.

Öte yandan, sabit bir hata mesajı dizisi ile karşılaşabilirsiniz. Bazı kullanıcılar bunun eğlenceli olarak değerlendirilebileceğini belirtti.

Ne olursa olsun kesinlikle sinir bozucu, bu nedenle işlemi sonlandırmak için Ctrl + C tuşlarını kullanın.



sözde terminal

Yalnızca bir -t anahtarını kullanmayı veya sayıyı artırmayı deneyebilirsiniz. Bu işe yaramazsa, komuttaki herhangi bir -t anahtarını -T anahtarıyla değiştirin, ör. ssh -T -R -p 80 appuals@ssh.example.com ve bunun işe yarayıp yaramadığını görün.

Bu yöntem, tüm sözde uçbirim ayırma sürecini tamamen devre dışı bırakır, bu nedenle zorlamanın olmadığı durumlarda işe yarayabilir. Tabii ki, bunların hiçbiri komut satırından bir sorun olmamalıdır, ancak komut dosyanızda hangi seçeneğin çalıştığını bulduğunuzda bir not aldığınızdan emin olun, böylece söz konusu sunucuya erişmek için çalıştırmanız gereken gelecekteki komut dosyalarında bunu kullanabilirsiniz.

Ssh komutu bu iki zıt seçeneğe benzer isimler verdiğinden, -t'nin sözde terminallerin tahsisini zorlarken -T'nin devre dışı bıraktığını unutmayın. Bu seçenekler büyük / küçük harfe duyarlıdır ve genellikle komut dosyalarının içinden gereklidir çünkü ssh'ın çalışması için geleneksel bir TTY terminali gerekir. Doğal olarak, sizin durumunuzda bu amaç için terminal öykünücünüzü kullanıyor olacaksınız.

Yöntem 2: sshpass'ı kullanma

Bazı kişiler, varsayılan olarak dahil edilmeyen sshpass komutuyla komut dosyalarının daha iyi çalıştığını görebilir. Denemeyi tercih ederseniz veya özel kullanım durumunuz için ihtiyacınız olduğu için her zaman sudo apt-get install sshpass veya sudo yum install sshpass ile yükleyebilirsiniz.

Henüz kullanmıyorsanız, muhtemelen ihtiyacınız yoktur. Yine de, bu tür bir ortamda sözde terminal tahsisi ile ilgili hata mesajlarını şaşırtmak için aynı teknikleri kullanabilirsiniz.

Örneğin, sistemi betiğinizin içinden çalışmaya zorlamak için sshpass -p şifre ssh -T appuals@ssh.example.com kullanın.

Yöntem 3: İş Yönetimi Hatalarını Düzeltme

Bazen, tüm bunları düzelttikten sonra bile başka bir hata mesajı alabilirsiniz. Tty'ye erişim olmadığını belirten bir uyarı alıyorsanız ve ardından kabuğunuzda iş kontrolü olmadığını hatırlatırsanız, bir şekilde normal şekilde çalışabilirsiniz.

Bu hata, uzak sunucuda csh, tcsh veya hatta Almquist veya başka bir kabukla ilgili düzensiz bir şeyden kaynaklanır. Başka hata mesajları aldığınız için fark etmemiş olabilirsiniz, ancak sözde terminaller hakkında başkalarını görmüyorsanız, normalde yaptığınız gibi nispeten devam etmeniz mümkün olmalıdır.

Bu durumda işlemleri durdurmak için Ctrl + Z'yi kullanmayı denemek istemeyebilirsiniz, çünkü bunların tekrar başlatılmasının bir yolu olmayabilir. Çıktığınızda durdurulmuş işler olduğunu belirten bir hata mesajı alıyorsanız, çıkış yapmanıza izin verilmez.

durdurulan işler

İşlem sırasında işi kaybetmeyi düşünmeyeceğinizi varsayarak, kapatamadığınız işleri kapatmak için ps ve kill komutlarını kullanın. Şimdi çıkabileceksiniz.

Etiketler Linux nasıl yapılır ssh 3 dakika okundu