GNU/Linux >> Linux の 問題 >  >> Linux

Ssh –すべての入力と出力がリダイレクトされたときにSshはどのようにパスワードを要求しますか?

以下のコマンドを実際に実行する必要はありません。パスワードを入力せずにログインしたい場合は、sshキーを認識しています。 sshの方法を知りたいだけです ファイルのリダイレクトを回避しているようです。

次のコマンドを実行します、ssh パスワードの入力を求められます:

ssh [email protected] > /dev/null 2> /dev/null < /dev/null

これはどのように作動しますか? stdinstdout 、およびstderr すべてリダイレクトされますが、ssh それでも、画面にプロンプ​​トを印刷して、入力内容を読み取ることができます。 sshを追加してみました 引数-t -t および-T (両方を同時にではなく)、疑似tty割り当てを有効または無効にしますが、違いはありません。

正しく入力したかどうかはわかりませんが、この方法ですべての入力と出力を閉じてみました。それでも、ssh パスワードの入力を求めるプロンプト:

(exec 0<&- 1<&- 2<&- 0>&- 1>&- 2>&-; ssh [email protected])

承認された回答:

OpenSSH readpassphrase.cの75行目から:

    /*
     * Read and write to /dev/tty if available.  If not, read from
     * stdin and write to stderr unless a tty is required.
     */

プログラムはTTYを直接読み書きするため、標準の入力パイプと出力パイプを閉じるだけで直接入力を無効にすることはできません。 SSHクライアントに、提供されたパスワードを使用するか、@muruの提案に従って実行するように指示する必要があります。


Linux
  1. キーボード入力とテキスト出力はどのように機能しますか?

  2. Cdへの入力に使用されるコマンドの出力はどれですか?

  3. 複数のウィンドウのパスワードを入力する方法は?

  1. Ssh – Tcp-keepaliveはSshでどのように機能しますか?

  2. バッチ モードで SSH および SCP を実行する方法 (パスワードレス ログインが有効な場合のみ)

  3. Linux シェル スクリプトで Yes/No/Cancel の入力を求めるにはどうすればよいですか?

  1. プル時にgitがパスワードを要求しないようにする方法は?

  2. git pull コマンドにパスワードを入力するには?

  3. Linux で入出力エラーを解釈して修正する方法は?