In realtà non ho bisogno di eseguire il comando seguente e sono a conoscenza delle chiavi ssh se volevo accedere senza digitare una password. Vorrei solo sapere come ssh
sembra aggirare il reindirizzamento del mio file.
Eseguendo il comando seguente, ssh
mi chiede una password:
ssh [email protected] > /dev/null 2> /dev/null < /dev/null
Come funziona? stdin
, stdout
e stderr
vengono tutti reindirizzati, ma ssh
riesce comunque a stampare un prompt sul mio schermo e leggere ciò che scrivo. Ho provato ad aggiungere ssh
argomenti -t -t
e -T
(non entrambi contemporaneamente), per abilitare o disabilitare l'allocazione pseudo-tty, ma non faceva differenza.
Ho anche provato a chiudere tutti gli input e gli output in questo modo, anche se non so se l'ho digitato correttamente. Comunque, ssh
richiede una password:
(exec 0<&- 1<&- 2<&- 0>&- 1>&- 2>&-; ssh [email protected])
Risposta accettata:
Da OpenSSH readpassphrase.c, riga 75:
/*
* Read and write to /dev/tty if available. If not, read from
* stdin and write to stderr unless a tty is required.
*/
Il programma legge e scrive direttamente il TTY, quindi non è possibile disabilitare l'input diretto semplicemente chiudendo i tubi di input e output standard. Devi dire al client SSH di utilizzare una password fornita o fare come suggerito da @muru.