Saya telah berjuang dengan ini selama beberapa jam sehingga bantuan sangat dihargai ...
Saya memiliki 2x server yang bisa saya gunakan ssh
dengan kunci publik dari OSX, tidak ada masalah sama sekali di sana jadi saya yakin semuanya baik-baik saja sshd_config
.
Saya mencoba mengkonfigurasi tugas cron untuk rsync
menyinkronkan dua server dan memerlukan server B (cadangan) ssh
ke server A menggunakan kunci publik.
Saya tidak bisa seumur hidup saya mencari tahu mengapa tidak menemukan kunci publik saya - mereka ada di ~/.ssh/
(mis. /root/.ssh
) Dan semua izin file benar pada A& B.
Ini adalah output:
debug2: we did not send a packet, disable method
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug3: no such identity: /root/.ssh/identity
debug1: Trying private key: /root/.ssh/id_rsa
debug3: no such identity: /root/.ssh/id_rsa
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
Perhatikan juga sedang mencari kunci pribadi yang tidak ada ...
drwx------. 2 root root 4096 May 25 10:15 .
dr-xr-x---. 4 root root 4096 May 24 18:52 ..
-rw-------. 1 root root 403 May 25 01:37 authorized_keys
-rw-------. 1 root root 0 May 25 01:41 config
-rw-------. 1 root root 1675 May 25 02:35 id_rsa_tm1
-rw-------. 1 root root 405 May 25 02:35 id_rsa_tm1.pub
-rw-------. 1 root root 395 May 25 02:36 known_hosts
ssh
key-authentication
Danny
sumber
sumber
ls -la /root/.ssh/
_tm1
dari nama file kunci Anda (yaitumv id_rsa_tm1 id_rsa
danmv id_rsa_tm1.pub id_rsa.pub
)Jawaban:
Lihatlah halaman manual ssh Anda:
atau halaman manual ssh_config:
Anda lihat, ada beberapa nama file khusus yang dicoba jika Anda tidak menentukan kunci. Itu juga file yang Anda lihat di output log Anda.
Untuk menggunakan kunci dalam file dengan nama berbeda, Anda memiliki tiga opsi:
-i
opsi di atas .IdentityFile
opsi di atas .ssh-add
.Untuk sesi interaktif, agen adalah yang paling fleksibel. Untuk pekerjaan cron Anda,
-i
opsi mungkin yang paling mudah.sumber
File berwenang_kunci salah pada host tujuan adalah alasan lain ssh menampilkan pesan "kami tidak mengirim paket" dan meminta kata sandi alih-alih menggunakan pubkey auth: -
Masalah dalam kasus khusus ini adalah bahwa data kunci publik, yang telah disisipkan ke
.ssh/authorized_keys
dalam host tujuan, hilang karakter pertamanya: -Solusinya adalah dengan menambahkan "s" yang hilang.
Dan sebagainya:-
sumber
String pesan kesalahan yang tepat dalam pertanyaan ini juga dapat terjadi dalam kasus pasangan kunci pribadi / publik yang tidak cocok di sisi lokal . Tidak, itu tidak masuk akal, tetapi saya hanya mencabuti rambut saya untuk waktu yang lama mencoba untuk mencari tahu apa yang sedang terjadi.
.ssh/mykey.pub
disalin ke.ssh/authorized_keys
..ssh/mykey
kunci pribadi yang benar untuk mencocokkan kunci publik sistem A, tetapi juga memiliki.ssh/mykey.pub
file yang tidak cocok, mungkin versi sebelumnya dari kunci yang diganti.SSH dari B ke A (
ssh -i mykey A
) akan gagal dengan pesan dalam pertanyaan, terutama jika Anda menghidupkan-vv
dari klien ssh Anda akan melihat:Ini bohong karena kunci sebenarnya tidak dicoba, ternyata menggunakan file kunci publik lokal dengan nama yang cocok untuk mencari tahu apakah itu mungkin berfungsi dan kemudian tidak benar-benar melakukan apa pun ketika mereka tidak cocok. Tidak ada jumlah informasi debug di kedua sisi yang benar-benar mengisyaratkan masalah.
sumber
Nama file default yang dicari oleh ssh adalah
id_rsa
danid_rsa.pub
.Jika Anda ingin menggunakan nama file lain, Anda harus menentukannya dalam
ssh_config
(menggunakanIdentityFile
pengaturan) atau melalui parameter baris perintah ssh-i
.sumber
Saya memiliki masalah yang sama pada RedHat; memeriksa log dan menemukan bahwa direktori home memiliki hak pengguna yang salah.
sshd[2507]: Authentication refused: bad ownership or modes for directory /home/user
Memperbaiki hak dir home menyelesaikan ini.
sumber
~/.ssh
dir. Setidaknya pada Fedora 28 ketika~/.ssh
izin adalah 0775, saya tidak bisa terhubung dengan kunci publik / pribadi. Jadi saya mengubah izin menjadi 0755 dan bekerja seperti pesona :)Cara sederhana untuk debug di Debian / Ubuntu adalah: Hubungkan dengan kata sandi dan ikuti log
Cobalah untuk terhubung dari terminal lain dan Anda akan melihat kesalahan ...
Dalam kasus saya direktori / root adalah 770 dan bukan 700 yang merupakan default. Kesalahannya adalah "Otentikasi ditolak: kepemilikan buruk atau mode untuk direktori / root"
Perbaiki ini dan Anda selesai.
sumber
Mencoba
Kemungkinan masalah dengan konteks penjualan
sumber
Setelah berlari
ssh-copy-id user@remote-host
biasanya itu harus bekerja. Tetapi jika gagal, coba ini: login ke host jarak jauh sebagai pengguna yang ingin Anda login di masa depan dan jalankan:
Itu membantu saya.
sumber
Jadi yang terjadi pada saya adalah saya memiliki 2 VM untuk diakses dari mesin lokal saya (2 kunci id_rsa.pub dan id_rsa2.pub). Saya menyadari bahwa koneksi ssh saya menggunakan id_rsa.pub secara default untuk koneksi ssh [email protected]. Saya memecahkan masalah saya dengan menambahkan file konfigurasi dan menentukan identitas yang akan digunakan untuk setiap host seperti berikut:
sumber
klien:
sumber