Când încerci pisică
canalizat la ssh
de la un server nod linux la acest laptop cu Windows 10 primesc acest mesaj:
Pseudo-terminalul nu va fi alocat deoarece stdin nu este un terminal
De ce se întâmplă asta?
Ce înseamnă asta, Pseudo-terminal nu va fi alocat?
Presupun, "Pseudo-terminalul este un terminal spawn și nu va primi o partiție de disc" poate???
Ce înseamnă asta, stdin nu este un terminal?
La care este acest stdin la care se face referire, server sau client? Pun această întrebare pentru că arată ca problema poate pe laptopul Windows; și, problema mea este că această eroare împiedică nodul să scrie pe laptop.
Povestea:
Folosesc Linux pe noduri de câteva luni, Linux în cloud și Windows 10 acasă.
Am putut scp
cu succes de fiecare dată de la Windows la Linux. Acum, vreau să introduc fișiere în VSCode din linux, astfel încât să pot face lucruri cu ele pe o interfață grafică pe care niciunul dintre nodurile linux nu o are. Mi-am imaginat că ar trebui să fie simplu, ssh-keygen de la nodul linux și scp cheia pub la laptopul Windows. Acest lucru nu a funcționat niciodată; acesta a expirat întotdeauna, fără mesaj de eroare; totuși, „conexiunea pierdută” a fost mesajul de întoarcere.
Așa că încerc pisică
canalizat la ssh
și primesc mesajul de eroare, pseudo-terminal nu va fi alocat deoarece stdin nu este un cli
. Această eroare revine imediat și apoi după câteva așteptări, promptul revine cu mesajul de expirare.
Eu cred acest mesaj de la ssh
apare din același motiv ca și timeout-ul de la scp
chiar dacă scp
nu are niciun mesaj de eroare.Spune-mi dacă greșesc aici dacă poți. De asemenea, cred că dacă pot înțelege acest mesaj de eroare dat de ssh
ar putea să mă îndrume în direcția corectă pentru a continua testarea. Acesta este motivul pentru care întrebarea „La care este acest stdin la care se face referire, server sau client?”
Când am început să configurez tunelul ssh de la nodul Linux la laptopul Windows, încercam să transfer cheia publică la laptopul Windows și primim timeout-ul de fiecare dată, de multe ori! Așa că îmi spun doar să transfer manual cheia publică; și, am făcut-o, am plasat-o acolo unde era de așteptat. Apoi am convertit testele pentru a folosi acest fișier de testare - test_scpncat.txt
. Este doar un fișier text „hello world”.
Acesta este mesajul pe care l-am primit când am configurat cheile scp
.
ssh: conectați-vă la portul 22 de gazdă <adresa_ip>: conexiunea a expirat, conexiunea pierdută
Acesta este mesajul pe care îl primesc după setarea manuală a tastelor scp
și fișierul de testare:
ssh: conectați-vă la portul 22 de gazdă <adresa_ip>: conexiunea a expirat, conexiunea pierdută
Acesta este mesajul pe care îl primesc după setarea manuală a tastelor pisica | ssh
și fișierul de testare:
Pseudo-terminalul nu va fi alocat deoarece stdin nu este un terminal.
ssh: conectați-vă la portul 22 de gazdă <adresa_ip>: Conexiunea a expirat
Acestea sunt scripturile de testare; cineva ar putea întreba:
$ scp ~/test_scpncat.txt Utilizator@<adresa_ip>:C:\Utilizatori\Utilizator\test_scpncat.txt
$ cat ~/test_scpncat.txt | ssh User@<adresa_ip> >> C:\Utilizatori\utilizator\test_scpncat.txt
Mulțumesc anticipat!