GNU/Linux >> Belajar Linux >  >> Linux

Ssh – Bagaimana Ssh Meminta Kata Sandi Saat Semua Input dan Output Dialihkan?

Saya sebenarnya tidak perlu menjalankan perintah di bawah ini, dan saya mengetahui kunci ssh jika saya ingin masuk tanpa mengetik kata sandi. Saya hanya ingin tahu bagaimana ssh sepertinya menghindari pengalihan file saya.

Jalankan perintah berikut, ssh meminta saya untuk memasukkan kata sandi:

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

Bagaimana cara kerjanya? stdin , stdout , dan stderr semuanya dialihkan, tetapi ssh masih berhasil mencetak Prompt di layar saya dan membaca apa yang saya ketik. Saya mencoba menambahkan ssh argumen -t -t dan -T (tidak keduanya sekaligus), untuk mengaktifkan atau menonaktifkan alokasi pseudo-tty, tetapi tidak ada bedanya.

Saya juga mencoba menutup semua input dan output dengan cara ini, meskipun saya tidak tahu apakah saya mengetiknya dengan benar. Namun, ssh meminta kata sandi:

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

Jawaban yang Diterima:

Dari OpenSSH readpassphrase.c, baris 75:

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

Program membaca dan menulis TTY secara langsung sehingga tidak mungkin untuk menonaktifkan input langsung hanya dengan menutup pipa input dan output standar. Anda harus memberi tahu klien SSH untuk menggunakan kata sandi yang disediakan atau melakukan seperti yang disarankan oleh @muru.


Linux
  1. Bagaimana Cara Kerja Input Keyboard Dan Output Teks?

  2. Output Dari Perintah Yang Digunakan Untuk Input Ke Cd?

  3. Mengapa Opsi Ssh -t Menambahkan Cr &Lf Dalam Output yang Dialihkan?

  1. Ssh – Bagaimana Tcp-keepalive Bekerja Di Ssh?

  2. Bagaimana saya meminta input Ya/Tidak/Batalkan dalam skrip shell Linux?

  3. Bagaimana cara membuat git tidak meminta kata sandi saat menarik?

  1. Bagaimana cara menafsirkan dan memperbaiki kesalahan Input/output di Linux?

  2. Mengapa dentang menghasilkan teks yang tidak dapat dipahami saat dialihkan?

  3. bagaimana cara menonaktifkan login SSH dengan kata sandi untuk beberapa pengguna?