GNU/Linux >> Znalost Linux >  >> Linux

Ssh – Jak Ssh vyzve k zadání hesla, když jsou všechny vstupy a výstupy přesměrovány?

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.


Linux
  1. Jak funguje vstup z klávesnice a textový výstup?

  2. Výstup kterého příkazu použitého pro vstup na CD?

  3. Jak zakázat přihlášení SSH pomocí hesla

  1. Jak spustit SSH a SCP v dávkovém režimu (pouze když je povoleno přihlášení bez hesla)

  2. Jak mohu požádat o zadání Ano/Ne/Zrušit ve skriptu prostředí Linux?

  3. Jak zadat heslo do příkazu git pull?

  1. Jak nainstalovat a používat Hashcat pro obnovu hesla v Linuxu:[Cyber ​​Forensics]

  2. Jak povolit SFTP a zakázat SSH?

  3. „nohup Sudo…“ Nežádá o Passwd a nedělá nic?