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