Ve skutečnosti nemusím spouštět níže uvedený příkaz a jsem si vědom ssh klíčů, pokud bych se chtěl přihlásit bez zadání hesla. Jen bych rád věděl, jak ssh
Zdá se, že obchází moje přesměrování souboru.
Spuštěním následujícího příkazu ssh
vyzve mě k zadání hesla:
ssh [email protected] > /dev/null 2> /dev/null < /dev/null
Jak to funguje? stdin
, stdout
a stderr
jsou všechny přesměrovány, ale ssh
stále dokáže vytisknout výzvu na obrazovku a přečíst, co píšu. Zkusil jsem přidat ssh
argumenty -t -t
a -T
(ne obojí najednou), aby bylo možné povolit nebo zakázat alokaci pseudo-tty, ale nedělalo to žádný rozdíl.
Také jsem se tímto způsobem pokusil zavřít veškerý vstup a výstup, i když nevím, jestli jsem to napsal správně. Přesto ssh
vyzve k zadání hesla:
(exec 0<&- 1<&- 2<&- 0>&- 1>&- 2>&-; ssh [email protected])
Přijatá odpověď:
Z OpenSSH readpassphrase.c, řádek 75:
/*
* Read and write to /dev/tty if available. If not, read from
* stdin and write to stderr unless a tty is required.
*/
Program čte a zapisuje TTY přímo, proto není možné zakázat přímý vstup pouhým uzavřením standardních vstupních a výstupních kanálů. Musíte sdělit klientovi SSH, aby použil dodané heslo nebo udělal, jak navrhuje @muru.