SSH Multiple Session -> "stdin: is not a tty"

1

Saya memiliki Linux-VPS, menggunakannya sebagai GIT- dan HTTP-Server.

HTTP: Apache

Git-server: git-http-backend melalui vhost

Ketika saya masuk saya melalui SSH, semuanya baik-baik saja. Tetapi jika saya membuka SSH-Connection kedua, saya mendapatkan kesalahan ini:

stdin: bukan tty

Saya menggunakan ssh selama bertahun-tahun dan belum pernah melihat kesalahan seperti itu .. Saya mencari-cari lebih dari 1,5 jam ..

** Sementara saya menulis ini, kesalahan semakin aneh - sekarang kesalahan datang pada setiap koneksi!

Saya belum menemukan solusi yang membantu saya ..

Saya menggunakan..

  • Windows
  • Secure Shell Client (cukup outdatet, tetapi jauh lebih bagus daripada dempul)
Mijago
sumber
Coba ssh -tatau bahkan ssh -tt.
garethTheRed
Saya menambahkan informasi baru. Jika saya mencoba putty (plink), bahkan tidak -t, -t -t atau sth berhasil, sudah mencobanya.
Mijago
Saya tidak berpikir plinkmemiliki -topsi untuk memaksa pseudo-tty, yang menjelaskan mengapa itu tidak berhasil. Jika semuanya semakin buruk, apakah Anda sudah mempertimbangkan untuk me-reboot?
garethTheRed
Ya, berkali-kali .. Kemarin saya mengalami masalah yang sama dan setelah beberapa reboot dan mencoba saya menginstal ulang VM, tetapi seperti yang kita lihat itu tidak membantu
Mijago
Coba puttysaja. Rupanya, ada pohon SSH di sebelah kiri di mana Anda dapat mengontrol alokasi pseudo-tty. Saya tidak menggunakannya sendiri, jadi tidak dapat mengkonfirmasi / menyangkal :-)
garethTheRed

Jawaban:

0

Untuk alasan yang saya tidak mengerti (tapi lihat nanti), shell Anda tidak diatur ke interaktif; hanya masalah, di server jauh,

  bash -i 

ini akan membuat shell menjadi interaktif dan Anda akan baik-baik saja. Pada titik ini Anda mungkin harus sumber file .bashrc Anda, karena yang standar sering diberikan dengan baris berikut, terletak tepat di bagian atas file:

 case $- in
          *i*) ;;
           *) return;;
 esac

Ini memeriksa apakah di antara flag shell ($ -) ada i , untuk interaktif ; jika tidak ada, ia melompati sumber file. maka kebutuhan untuk sekarang dijalankan

 source ~/.bashrc

yang akan memberi Anda lingkungan standar Anda. Saya sangat menyarankan Anda untuk mengeksekusi bash -i secara otomatis, misalnya di dalam file .bashrc Anda: mengeksekusi skrip otomatis yang mengatur shell menjadi interaktif adalah sebuah oxymoron, dan setara dengan mengarahkan pistol yang dimuat ke pelipis Anda.

Mengapa pesan kesalahan ini muncul, saya hanya bisa berspekulasi:

  1. ISP Anda memungkinkan sejumlah kecil PTY simultan dialokasikan untuk setiap pengguna; misalnya kebijakan GitHub (memungkinkan nol PTY), tetapi tidak dapat benar-benar melihat keuntungan dengan mengizinkan angka kecil, tetapi tidak nol. Tapi kemudian, mungkin ada seseorang yang lebih pintar daripada aku yang bisa menjelaskan ini ...

  2. Anda mencoba ssh dari dalam shell terbalik , masalah yang terkenal untuk pentester. Ada beberapa cara untuk mengatasinya.

  3. ini adalah sesuatu yang berkaitan dengan Secure Shell Client versi lama yang Anda gunakan, atau Windows, tetapi dalam kedua kasus itu saya tidak banyak membantu.

MariusMatutiae
sumber