Bagaimana cara mengotomatiskan login SSH dengan kata sandi? Saya mengkonfigurasi VM pengujian saya, jadi keamanan yang berat tidak dipertimbangkan. SSH dipilih untuk keamanan yang dapat diterima dengan konfigurasi minimal.
ex)
echo password | ssh id@server
Ini tidak bekerja
Saya ingat saya melakukan ini dengan beberapa trik seseorang membimbing saya, tetapi saya tidak ingat sekarang trik yang saya gunakan ...
ssh
password
automation
Eonil
sumber
sumber
Jawaban:
Jangan gunakan kata sandi. Hasilkan kunci SSH tanpa kata sandi dan dorong ke VM Anda.
Jika Anda sudah memiliki kunci SSH, Anda dapat melewati langkah ini ... Cukup tekan Enteruntuk kunci dan kedua frasa sandi:
Salin kunci Anda ke server target:
Sekarang coba masuk ke mesin, dengan
ssh 'id@server'
, dan check in:untuk memastikan kami belum menambahkan kunci tambahan yang tidak Anda harapkan.
Akhirnya periksa masuk ...
Anda juga mungkin ingin melihat ke dalam menggunakan
ssh-agent
jika Anda ingin mencoba menjaga kunci Anda dilindungi dengan frasa sandi.sumber
sumber
ssh
satu kali sebelum menggunakansshpass
, untuk mengonfirmasi sidik jari RSA.bash_history
dalam teks biasa di mesin Anda.history -r
perintah untuk menghapus riwayat Anda. Poin yang bagus.Sementara jawaban yang benar untuk pertanyaan Anda adalah sshkey , ada cara yang lebih aman - kunci SSH. Anda hanya tiga langkah mudah dari solusi:
Buat rsa keypair :
lalu salin di server dengan satu perintah sederhana :
Anda sekarang dapat masuk tanpa kata sandi :
sumber
ssh-copy-id
.ssh-copy-id -i ~/.ssh/tatu-key-ecdsa user@host
Gunakan harapkan:
Contoh:
sumber
-oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null
perintah ssh juga untuk menghindari menerima mesin ke known_hostsIni mungkin tidak ada gunanya bagi Anda, tetapi Anda bisa melakukannya dengan Perl:
sumber
Saya terkejut tidak ada yang disebutkan
plink
dariputty-tools
paket di Ubuntu:Ini juga tersedia di Windows dan sintaksisnya sebagian besar kompatibel dengan klien openssh.
sumber
putty-tools
paketSistem masuk tunggal SSH biasanya dicapai dengan otentikasi kunci publik dan agen otentikasi. Anda dapat dengan mudah menambahkan kunci VM pengujian Anda ke agen auth yang ada (lihat contoh di bawah). Metode lain seperti gssapi / kerberos ada tetapi lebih kompleks.
sshpass
Dalam situasi di mana
password
hanya metode otentikasi yang tersedia, sshpass dapat digunakan untuk memasukkan kata sandi secara otomatis. Harap perhatikan bagian PERTIMBANGAN KEAMANAN di halaman manual . Dalam ketiga opsi, kata sandi terlihat atau disimpan dalam plaintext di beberapa titik :Pipa anonim (direkomendasikan oleh sshpass)
Ini cukup rumit di bash, bisa dibilang lebih mudah dengan bahasa pemrograman. Proses lain dapat dilampirkan ke pipa Anda / fd sebelum kata sandi ditulis. Jendela peluang cukup pendek dan terbatas pada proses atau root Anda.
Variabel lingkungan
Anda dan root dapat membaca variabel lingkungan proses Anda (yaitu kata sandi Anda) ketika sshpass sedang berjalan (
cat /proc/<pid>/environ | tr '\0' '\n' | grep ^SSHPASS=
). Jendela peluang jauh lebih lama tetapi masih terbatas pada proses atau root Anda sendiri, bukan pengguna lain.Argumen baris perintah (paling tidak aman)
Ini nyaman tetapi kurang aman seperti yang dijelaskan dalam halaman manual. Argumen baris perintah terlihat oleh semua pengguna (misalnya
ps -ef | grep sshpass
). sshpass mencoba menyembunyikan argumen, tetapi masih ada jendela di mana semua pengguna dapat melihat kata sandi Anda dilewati oleh argumen.Catatan samping
Setel variabel HISTCONTROL bash Anda ke
ignorespace
atauignoreboth
dan awali perintah sensitif Anda dengan spasi. Mereka tidak akan disimpan dalam sejarah.Otentikasi kunci publik SSH
Frasa sandi sangat penting. Siapa pun yang mendapatkan file kunci privat tidak akan dapat menggunakannya tanpa frasa sandi.
Atur agen otentikasi SSH
Terhubung seperti biasa
Keuntungannya adalah kunci pribadi Anda dienkripsi dan Anda hanya perlu memasukkan frasa sandi satu kali (melalui metode input yang lebih aman juga).
sumber
Tentu Anda tidak ingin menggunakan kunci SSH daripada kata sandi? Dengan begitu keduanya aman dan otomatis.
sumber
Tergantung pada kebutuhan otomasi Anda, mungkin Ansible akan cocok untuk Anda. Ini dapat dengan baik mengelola hal-hal seperti meminta kata sandi, meminta kata sandi sudo, berbagai cara mengubah penggunaan, dengan aman menggunakan rahasia terenkripsi (vault).
Jika itu tidak cocok, saya akan menyarankan Harapkan, seperti yang disarankan dalam jawaban lain.
sumber