Saya memiliki akun hostgator dengan akses ssh diaktifkan. Saat mencoba mengunggah file kunci .pub yang dihasilkan dengan perintah ini:
rsync -av -e "ssh -p2222" /home/user/.ssh/key.pub [email protected]:.ssh/authorized_keys
Saya terus mendapatkan:
Menerima putuskan sambungan dari 111.222.33.44: 2: Terlalu banyak kegagalan otentikasi untuk nama pengguna rsync: koneksi ditutup secara tak terduga (0 byte diterima sejauh ini) [pengirim] rsync error: error yang tidak dapat dijelaskan (kode 255) di io.c (601) [pengirim = 3.0.7]
Saya sudah bermain-main sebelumnya dengan ssh sampai saya mendapat kegagalan auth. Tapi sekarang tampaknya penghitung kegagalan auth tidak diatur ulang (telah menunggu lebih dari 12 jam sekarang, dukungan teknis "mengandaikan" itu diatur ulang setelah 30 menit menjadi 1 jam, dan orang lain mengatakan kepada saya "itu akan disetel ulang setiap kali Anda mencoba masuk dengan nama pengguna ", jeesh).
Ini membuatku gila. Saya bahkan mengatur ini di server khusus Slicehost dan memiliki lebih sedikit masalah dibandingkan dengan orang-orang ini.
Ada tips? Mungkin itu adalah sisi klien dan bukan sisi server.
sumber
Jawaban:
Ini biasanya disebabkan oleh secara tidak sengaja menawarkan beberapa kunci ssh ke server. Server akan menolak kunci apa pun setelah terlalu banyak kunci yang ditawarkan.
Anda dapat melihat ini sendiri dengan menambahkan
-v
flag padassh
perintah Anda untuk mendapatkan output verbose. Anda akan melihat bahwa banyak kunci ditawarkan, sampai server menolak koneksi dengan mengatakan: "Terlalu banyak kegagalan otentikasi untuk [pengguna]" . Tanpa mode verbose, Anda hanya akan melihat pesan ambigu "Koneksi reset oleh rekan" .Untuk mencegah kunci yang tidak relevan ditawarkan, Anda harus secara eksplisit menentukan ini di setiap entri host di file
~/.ssh/config
(pada mesin klien) dengan menambahkanIdentitiesOnly
seperti:Jika Anda menggunakan ssh-agent, itu membantu untuk menjalankan
ssh-add -D
untuk menghapus identitas.Jika Anda tidak menggunakan konfigurasi host ssh, Anda harus secara eksplisit menentukan kunci yang benar dalam
ssh
perintah seperti ini:Catatan: parameter 'IdentitiesOnly yes' harus berada di antara tanda kutip.
atau
sumber
ssh -i some_id_rsa -o "IdentitiesOnly yes" them@there:/path/
ssh
"menawarkan beberapa kunci" (apa pun di bawah~/.ssh
) bahkan ketika aturan untuk host memilikiIdentityFile /path/to/private_key_file
pengaturan eksplisit . Tidakkah kunci yang ditentukan secara eksplisit ini harus (paling tidak) ditawarkan terlebih dahulu? Bukankah ini bug / kesalahan dalam klien openssh?IdentityFile
opsi? Misalnya, tanpaIdentitiesOnly
opsi, ia mencoba menggunakangithub
kunci saya ketika saya mencobassh gitlab.com
. Itu tidak masuk akal.Saya menemukan cara yang lebih mudah untuk melakukan ini (jika menggunakan otentikasi kata sandi):
Ini memaksa otentikasi non-kunci. Saya bisa masuk segera.
Referensi
sumber
rsync
:rsync -av -e 'ssh -o PubkeyAuthentication=no' '[email protected]:~/remote_file' 'local_file'
Saya mendapatkan kesalahan ini juga dan menemukan bahwa itu terjadi b / c server dikonfigurasi untuk menerima hingga 6 percobaan:
Selain mengatur
IdentitiesOnly yes
dalam~/.ssh/config
file Anda, Anda memiliki beberapa opsi lain.MaxAuthTries
(di server ssh)~/.ssh/
direktori Anda & jalankanssh-add -D
~/.ssh/config
file AndaSeperti itu:
Mungkin bukan cara yang baik untuk melakukannya, mengingat sedikit melemahkan server ssh Anda karena sekarang akan menerima lebih banyak kunci dalam upaya koneksi yang diberikan. Pikirkan vektor serangan brute force di sini.
Merupakan cara yang baik untuk mengasumsikan Anda memiliki kunci yang tidak diperlukan dan dapat dihapus secara permanen.
Dan pendekatan pengaturan IdentitiesOnly mungkin merupakan cara yang disukai untuk menangani masalah ini!
sumber
Saya menambahkan ke ~ / .ssh / config ini:
Ini mengaktifkan opsi IdentitiesOnly = yes secara default. Jika Anda perlu terhubung dengan kunci pribadi, Anda harus menentukannya dengan opsi -i
sumber
Jika Anda mendapatkan Galat SSH berikut:
Ini dapat terjadi jika Anda memiliki (default pada sistem saya) lima atau lebih file identitas DSA / RSA yang disimpan dalam direktori .ssh Anda dan jika opsi '-i' tidak ditentukan pada baris perintah.
Klien ssh pertama-tama akan mencoba masuk menggunakan setiap identitas (kunci pribadi) dan permintaan berikutnya untuk otentikasi kata sandi. Namun, sshd menjatuhkan koneksi setelah lima upaya login yang buruk (sekali lagi default dapat bervariasi).
Jika Anda memiliki sejumlah kunci pribadi di direktori .ssh Anda, Anda dapat menonaktifkan "Otentikasi Kunci Publik" di baris perintah menggunakan argumen opsional '-o'.
Sebagai contoh:
sumber
Jika Anda memiliki kata sandi, dan hanya ingin menggunakan kata sandi untuk masuk, berikut adalah cara melakukannya.
Untuk menggunakan HANYA otentikasi kata sandi dan BUKAN menggunakan kunci Publik, dan BUKAN menggunakan "keyboard-interactive" yang agak menyesatkan (yang merupakan superset termasuk kata sandi), Anda dapat melakukan ini dari baris perintah:
sumber
Keluar dari @David pepatah, tambahkan saja ini
IdentitiesOnly yes
ke .ssh / config Anda, ia melakukan hal yang samassh -o PubkeyAuthentication=no.
Setelah Anda masuk, hapus
.ssh/authorized_keys
. Sekarang, kembali ke mesin lokal dan ketik yang berikut inicat ~/.ssh/id_rsa.pub | ssh -o PubkeyAuthentication=no user@IP_ADDR 'cat >> .ssh/authorized_keys'
. Ini harus mengaktifkan kembali ssh Anda dengan kunci publiksumber
Saya tahu ini adalah utas lama, tetapi saya hanya ingin menambahkan di sini bahwa saya mengalami pesan kesalahan yang sama, tetapi itu disebabkan oleh pemilik folder .ssh yang menjadi root daripada pengguna yang menggunakan kunci. Saya memperbaiki masalah ini dengan menjalankan perintah berikut:
Saya juga memastikan izin sudah benar pada folder .ssh:
File-file di dalam direktori .ssh harus memiliki izin 600:
sumber
Dalam kasus saya, masalahnya adalah izin direktori. Ini memperbaikinya untuk saya:
sumber
Dalam kasus saya, itu terjadi karena saya menggunakan nama pengguna "ubuntu", tetapi nama pengguna dalam contoh ini adalah "ec2-user"
Setelah saya melakukan apa yang disarankan "John T", saya mendapatkan kesalahan ini:
Kemudian saya menemukan solusinya (yaitu mengubah nama pengguna menjadi "ec2-user") dalam jawaban ini: https://stackoverflow.com/questions/1454629/aws-ssh-access-permission-denied-publickey-issue
sumber
Saya
.ssh/authorized_keys2
memasukkan kunci publik saya , tetapi server dikonfigurasi untuk hanya membaca.ssh/authorized_keys
:Setelah memindahkan file saya
.ssh/authorized_keys
, saya dapat login dengan sukses dengan kunci saya.sumber
Pesan ini disebabkan oleh terlalu banyak upaya otentikasi yang gagal mengingat batas yang diizinkan diberlakukan pada server SSH jauh. Ini berpotensi berarti bahwa Anda memiliki terlalu banyak identitas yang ditambahkan dalam agen SSH.
Berikut beberapa saran:
-v
untuk melihat apakah itu masalahnya (Anda telah menggunakan terlalu banyak identitas).ssh-add -l
.ssh-add -d
.ssh-add -D
dan hanya menambahkan kembali yang relevan.Jika Anda memiliki akses ke server SSH, centang
MaxAuthTries
opsi (lihatman sshd_config
:).Posting terkait: Apa koneksi untuk
sshd_config
batas 'MaxAuthTries'?Jika tidak ada yang membantu, pastikan apakah Anda menggunakan kredensial atau file yang tepat.
sumber
Pesan ini dapat muncul ketika nama pengguna dan kata sandi yang benar tidak dimasukkan.
Pertama periksa apakah pengguna terdaftar:
sumber