Saya memiliki server yang harus sering saya akses melalui ssh, karena saya menghitungnya. Sekarang, pusat komputasi secara eksplisit melarang kunci SSH karena mereka "tidak aman". Mereka merasa mengetikkan kata sandi saya, pada keyboard, setiap kali, mungkin di depan manusia lain, adalah cara yang jauh lebih aman untuk login.
Sekarang; Saya tidak dapat mengubah pikiran mereka (saya mencoba).
Apakah ada cara untuk setidaknya menyimpan sementara kata sandi SSH, cara GIT dapat menyimpan kata sandi dalam cache untuk waktu tertentu?
the computing center explicitly forbids SSH-keys because they are "insecure"
- Pendapat saya tentang masalah ini? Temukan host server baru, karena server Anda jelas tidak layak.publickey
otentikasi. Jika Anda menonaktifkanpassword
otentikasi di server, Anda mencegah semua penyerang itu mencoba menebak kata sandi. Dan jika seorang penyerang mencoba serangan mitm terhadap klien yang sebelumnya tidak menyimpan kunci publik dari server, Anda jauh lebih terlindungi denganpublickey
daripada jika Anda menggunakanpassword
otentikasi.Jawaban:
Koneksi ulang
SSHv2 memungkinkan koneksi terotentikasi yang sama untuk membangun beberapa 'saluran' - shell interaktif, perintah batch, SFTP, bersama dengan yang sekunder seperti agen-forwarding atau TCP-forwarding Server Anda mungkin mendukung multiplexing koneksi secara default. (Jika admin Anda mengeluh, itu bukan caching kata sandi Anda di mana pun - itu caching seluruh koneksi.)
Dengan OpenSSH yang Anda miliki
ControlMaster
danControlPath
opsi (-M dan -S) untuk memanfaatkan ini:Mulai koneksi SSH 'master' menggunakan
-M
. (Karena Anda belum memiliki ControlPath dalam konfigurasi Anda, Anda perlu menentukannya di baris perintah menggunakan-S
. Ini perlu waktu lama, jadi saya menambahkan-fN
opsi untuk turun ke latar belakang; mereka secara teknis opsional jika tidak.)Anda kembali ke shell lokal.
Mulai koneksi baru melalui master:
Anda masuk
Untuk membuat ini berguna bagi Git / rsync / SFTP, Anda perlu mengatur
ControlPath
konfigurasi Anda, karena Anda tidak akan dapat menentukan-S
setiap saat:Anda dapat mengotomatiskan ini - versi OpenSSH terbaru juga memiliki
ControlPersist
yang secara otomatis membuat koneksi master di latar belakang jika belum ada. Ini memungkinkan Anda untuk melewati langkah 1 dan hanya menggunakan ssh seperti biasa.Konfigurasi dalam
~/.ssh/config
:Koneksi pertama meminta kata sandi:
Yang kedua tidak:
Untuk mengontrol master multipleks (hentikan atau konfigurasikan penerusan TCP), gunakan
-O
opsi.Metode serupa didukung oleh versi Putty terbaru .
sumber
Menggunakan
sshpass
sshpass ( github , halaman manual ) adalah alat yang secara otomatis memasukkan kata sandi ke ssh. Cara aman untuk menggunakannya adalah ini:
Ini akan membaca kata sandi
~/.ssh/compute_password
, seperti file kunci pribadi tanpa frasa sandi. Anda bisa meletakkansshpass
perintah di skrip shell kecil atau alias shell untuk menghindari mengetik perintah penuh. Sayangnya, saya belum menemukan cara untuk melakukan ini~/.ssh/config
.(Dimungkinkan juga untuk menentukan kata sandi secara langsung pada baris perintah
sshpass
, tetapi ini harus dihindari, karena kata sandi bocor kepada siapa saja yang dapat melakukannyaps
)Perbandingan dengan metode lain
Pendekatan ini tentu saja kurang aman daripada mengatur otentikasi kunci publik dengan benar, tetapi Anda mungkin sudah tahu itu.
Ini juga kurang aman daripada jawaban @ grawity tentang penggunaan kembali koneksi, tetapi memiliki keuntungan karena tidak harus memasukkan kata sandi secara interaktif sama sekali.
Anda dapat mempertimbangkan jawaban @ grawity sebagai alternatif untuk autor pubkey dengan frasa sandi dan caching kunci pribadi (yaitu
ssh-agent
). Maka jawaban saya akan menjadi alternatif untuk autentikasi pubkey tanpa frasa sandi pada file kunci pribadi.sumber
head -c 16 /dev/urandom | base64
untuk 128 bit) dan tidak menggunakannya pada sistem lain, ini bijaksana untuk keamanan mirip dengan kunci. Seperti sulit untuk di paksa, dan mudah digunakan dari file jika tidak dienkripsi. Ini berlaku untuk orang jahat juga, jika mereka mendapatkan file. Satu-satunya perbedaan adalah bahwa kata sandi dikirim ke server apa adanya, sedangkan kunci memiliki matematika yang lebih baik untuk membuktikan bahwa Anda memiliki kunci pribadi yang benar tanpa mengungkapkannya, dan dari segi kegunaan, lebih sulit untuk mengenkripsi file yang berisi kata sandi (tidak alat standar).Gunakan pengelola kata sandi.
Beberapa pengelola kata sandi (mis. KeePassXC) memiliki fitur 'tipe-otomatis'. Anda menyimpan kata sandi pada pengelola kata sandi, membuka kunci basis data saat Anda menjalankan pengelola dan setiap kali
ssh
meminta kata sandi, Anda menekan kombinasi tombol yang membuat pengelola kata sandi menuliskan kata sandi panjang Anda ke konsol.Tidak perlu menyalin, ingat apa pun (kecuali kata sandi untuk membuka kunci basis data) dan Anda dapat memiliki kata sandi yang kuat tanpa menumbuk 30 karakter itu setiap kali Anda mencoba masuk.
Anda dapat memilih favorit Anda dari daftar ini: https://en.wikipedia.org/wiki/List_of_password_managers
sumber
gnome-terminal
mengubah judulnyassh somehost
ketika ssh meminta saya untuk memasukkan kata sandi sehingga Anda dapat mencocokkan jendela judul dengan ini tanpa masalah. Saya tidak tahu apa-apa tentang fitur 'anti-keylogging' - Saya menggunakan KeePassXC di terminal setiap hari dan yang terburuk yang harus saya hadapi adalah memilih akun yang sesuai dari daftar.Alternatif lain adalah dengan menggunakan klien ssh GUI. Pada Windows, pilihan yang jelas adalah Putty . Ada juga versi Linux Putty, terutama sebagian besar distro berbasis Debian seperti Ubuntu biasanya menyertakan Putty dalam repo mereka.
Klien lain yang sangat baik adalah Termius . Ini mendukung tidak hanya Windows dan Linux tetapi juga OSX, iOS dan Android. Meskipun terutama dirancang untuk ponsel versi desktop sebenarnya cukup bagus.
Jika saya tidak salah, Hyperterminal yang terhormat di Windows juga memiliki / memiliki klien ssh bawaan tetapi saya belum pernah menggunakan windows dalam waktu yang sangat lama jadi saya tidak sepenuhnya yakin.
Semua klien GUI mencakup kemampuan untuk menyimpan pengaturan koneksi yang mencakup nama pengguna dan kata sandi Anda.
sumber