Sebagai bagian dari skrip startup saya harus secara otomatis membuka beberapa jendela terminal gnome, salah satu terminal itu secara otomatis mengirim:
ssh [email protected]
Keterbatasan dengan ini adalah saya masih perlu mengetikkan kata sandi untuk menyelesaikan koneksi SSH.
Yang ingin saya lakukan adalah agar skrip saya memulai perintah dan menyelesaikan koneksi. Sejauh itu, saya berusaha mengikuti instruksi seperti yang dijabarkan dalam jawaban yang diterima di sini .
Dari sistem yang saya ingin hubungkan, saya berlari:
ssh-keygen
Enter file in which to save the key: /home/user/ssh/keys/server1key
Kemudian saya diminta untuk memasukkan kata sandi. Saya meninggalkan ini kosong, karena saya tidak yakin untuk apa itu, jadi saya berasumsi pengaturan satu akan memerlukan membuka dengan kata kunci setiap kali saya menggunakannya.
Melanjutkan dengan petunjuk yang tertaut di atas, saya kemudian berlari dan menerima yang berikut:
ssh-copy-id user@IP
ERROR: No identities found
Pencarian cepat mengungkapkan bahwa saya perlu menentukan lokasi kunci, karena itu tidak ada di lokasi penyimpanan default, jadi saya memperbaikinya:
ssh-copy-id -i /home/user/ssh/keys/server1key.pub [email protected]
Setelah menanyakan kata sandi server, itu berhasil menambahkan kunci. Namun, setelah mencoba masuk dengan "ssh user @ IP", saya masih dimintai kata sandi.
Sejauh yang saya ketahui, saya mengikuti petunjuk yang ditautkan dengan benar, jadi entah saya kehilangan sesuatu, atau mungkin konfigurasi yang ada menghalangi saya untuk membuat ini berfungsi?
Kedua sistem menggunakan 18.04 dan openssh.
sumber
Jawaban:
Itu gagal karena alasan yang sama itu
ssh-copy-id
gagal pertama kali - yaitu karena Anda telah memilih lokasi non-default untuk file identitas.Anda dapat mengatasinya dengan cara yang sama, dengan menambahkan perintah
-i /home/user/ssh/keys/server1key
Andassh
- perhatikan bahwa sisi klien membutuhkan lokasi file kunci pribadi .Dari
man ssh
Atau, Anda mungkin ingin membuat
~/.ssh/config
entri file untuk host di sepanjang barissumber
~/.ssh/config
, jika tidak OpenSSH menggunakan sistem lebar standar/etc/ssh/ssh_config
. Jika ada yang merasa terbantu, saya mengunggah ssh_config yang sudah dibuat sebelumnya ke GitHub saya beberapa waktu lalu sebagai titik awal bagi pengguna yang mungkin tidak punya waktu untuk membaca halaman manual ssh_config~/.ssh/config
akan menimpa nilai globalssh_config
, tetapi hanya memiliki file tidak akan menonaktifkan konfigurasi sistem yang luas.Alasan lain itu
ssh-copy-id
gagal adalah bahwa kunci belum ditambahkan ke agen SSH.Pertama, periksa dan mulai jika
ssh-agent
sedang berjalan:Jika Anda mendapatkan ID proses, Anda dapat menambahkan kunci Anda:
Dengan
-k
Anda menambahkan kunci ke gantungan kunci.Periksa apakah kunci ditambahkan dengan:
ssh-copy-id
harus bekerja sekarang.sumber
Semoga ini akan bekerja untuk Anda .. "sshpass -p yourpassword" secara otomatis akan masuk ke host jarak jauh.
[root @ localhost .ssh] # sshpass -p password123 ssh -l root localhost
sumber
Cukup jalankan 2 perintah:
Jawaban panjang:
Lalu:
sumber