GNU/Linux >> Belajar Linux >  >> Linux

SSH membuat semua kata sandi yang diketik terlihat saat perintah diberikan sebagai argumen untuk perintah SSH

Jika Anda memberikan perintah jarak jauh untuk dijalankan, SSH tidak mengalokasikan tty, sehingga perintah jarak jauh tidak dapat menonaktifkan gema. Anda dapat memaksa SSH untuk memberikan tty menggunakan -t opsi:

ssh -t [email protected] 'mysql -u user -p'

Opsi yang setara (untuk -o atau untuk file konfigurasi) adalah RequestTTY . Saya berhati-hati untuk tidak menggunakannya dalam konfigurasi karena dapat menimbulkan efek yang tidak diinginkan untuk perintah non-interaktif.


Menyimpan kata sandi dalam file opsi yang dilindungi

Jika Anda dapat memercayai keamanan komputer jarak jauh, Anda dapat menyimpan kata sandi dalam file opsi yang dilindungi dengan baik, seperti yang disarankan dalam Pedoman Pengguna Akhir untuk Keamanan Kata Sandi bab manual, tanpa perlu berkomunikasi melalui ssh atau untuk mengetik setiap waktu.

Secara khusus Anda dapat menambahkan baris di bagian [client] dari file .my.cnf di direktori home Anda:

[client]
password=your_pass

Tentu saja Anda harus menjaga agar file tersebut tidak dapat diakses oleh siapa pun kecuali Anda sendiri, dengan menyetel mode akses file ke 400 atau 600 dengan, mis.

chmod 600 ~/.my.cnf

Kemudian Anda dapat menggunakan sesuatu seperti

ssh [email protected] 'mysql -u user110971 --defaults-file=/home/user110971/mysql-opts'

di mana user110971 adalah nama pengguna akun Anda.

Memaksa ssh untuk mengalokasikan pseudo tty (ssh -t )

Masalah ini terjadi setiap kali Anda mengirim perintah melalui ssh dan Anda perlu memasukkan input karena, secara default, ssh tidak akan mengalokasikan pseudo-tty.

Anda dapat memaksakan alokasi tty dengan opsi -t , (bahkan lebih dari satu jika diperlukan):

-t

Paksakan alokasi pseudo-tty. Ini dapat digunakan untuk menjalankan program berbasis layar sewenang-wenang pada mesin jarak jauh, yang bisa sangat berguna, mis. saat mengimplementasikan layanan menu. Beberapa -t opsi memaksa alokasi tty, meskipun ssh tidak memiliki tty lokal.

Seperti yang dapat Anda baca di postingan Debian ini (Jul_11_2008) tentang sudo , ini adalah masalah lama yang suka berulang:

ssh [email protected] "sudo ls"  
password: password  

Dan kata sandi ditunjukkan kepada Anda

Solusinya adalah memaksa ssh untuk mengalokasikan pseudo-tty, dengan flag -t:

ssh -t [email protected] sudo ls

Catatan:

Jika Anda dapat mengandalkan membiarkan kata sandi dalam file yang hanya dapat diakses oleh Anda dan melakukan root pada berfungsi klien.
Jika dimungkinkan untuk mem-boot ulang komputer jarak jauh dengan mengubah OS atau menghapus HDD, komputer tidak dapat dianggap sepenuhnya aman... namun dalam kasus itu, database itu sendiri tidak akan aman.


Opsi pasang "hidepid" untuk proc fs juga berharga. Itu membuat baris perintah Anda tidak terlihat dalam daftar proses untuk contoh users.fstab lain:

proc /proc proc hidepid=1 0 0

Linux
  1. Cara Menghubungkan Host Jarak Jauh Menggunakan Perintah ssh

  2. Di linux, apa arti semua nilai di atas perintah?

  3. Perintah, pip install --upgrade pip, instal semua versi pip

  1. Bagaimana saya bisa memberikan kata sandi SSH ke SVN di baris perintah?

  2. Mengapa perintah dinding Linux tidak menyiarkan argumen string?

  3. Menghapus Semua Partisi Dari Baris Perintah

  1. Hasilkan kata sandi di baris perintah Linux

  2. Sedikit keajaiban penyalinan file SSH di baris perintah

  3. Lewati Output Perintah Sebelumnya Ke Berikutnya Sebagai Argumen?