Saya membuat pasangan kunci menggunakan puttygen.exe
(klien adalah windows 8). Di server (Ubuntu 12.04.3 LTS), saya telah memasukkan kunci publik saya ~/.ssh/authorized_keys
. Kunci publiknya adalah ini:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAopfM6RHOgnuc4Aftn3t4k5UIAT3StCAbn/vg/IMbphbXadshC+79sIlRq3P4zGzMjFTP4hKnzu6ehLV5lmj/qorq3SKT+bPO5Qrac3VbIlrGvuBFDDjP82I2Hwg3HzlsFTstqk++KToapaTYZ7jENEYyPl2wnzITJnt//+4U1o6juoXTKgdNE02hHnRZyHOV/bnkZyJJCEwJv5U0eXSThQnhmXtUxGT8U0HQNFiXfqIIVllhWiCnyrhhIaKz/CIJNAd2VmzyJzQtJtTQX8aWSNVrZju6Sv2/RncTNvsACdNgjjh/FH8PQXaep00jlJ3MOdsC8vz6VSPFbh6iKy1oLQ== rsa-key-20131231
Jadi benar (satu baris, tidak ada komentar, dimulai dengan ssh-rsa, dll.)
.ssh
tingkat izin dir adalah 700, izin file authorized_keys adalah 600. Baik direktori dan file milik pengguna sebenarnya yang saya coba masuki.
Ketika saya mencoba menghubungkan saya mendapatkan 'server refused our key'
dan server meminta kata sandi. Itu saja. Tidak ada yang masuk /var/log/auth.log
saat mencoba masuk dengan kunci.
Saya telah mencari di mana-mana dan semua artikel dan tip menyebutkan pengaturan chmod 600 dan 700 untuk file / direktori dan memformat kunci dengan benar. Saya telah melakukan semua ini masih mendapatkan kesalahan 'menolak kunci kami' dan saya kehabisan ide.
DEBUG
dan lihat apakah Anda dapat melihat masalah apa pun yang dicatat, jika masih tidak menunjukkan bahwa Anda mengakses, Anda mencari di file log yang salahJawaban:
Oke, ada kesalahan ketik kecil di kunci saya. Rupanya saat menempelkan ke file, huruf pertama terputus dan dimulai dengan sh-rsa, bukan ssh-rsa.
nrathathaus - jawaban Anda sangat membantu, terima kasih banyak, jawaban ini dikreditkan kepada Anda :) Saya tidak seperti yang Anda katakan dan menetapkan ini di sshd_conf:
Dengan melihat log saya menyadari bahwa sshd membaca kunci dengan benar tetapi menolaknya karena pengenal yang salah.
sumber
LogLevel
didefinisikan dalam/etc/ssh/sshd_config
. Log default adalah/var/log/auth.log
kecuali ditentukan lain disshd_config
.i
) petunjuk 's' tidak akan dipotongsudo service ssh restart
agar perubahan diterapkan. Jika tidak, tidak ada apa pun di file log auth saya.Menambahkan beberapa pemikiran karena jawaban lain membantu, tetapi tidak tepat.
Pertama-tama, seperti yang disebutkan dalam jawaban yang diterima, edit
dan setel tingkat log:
Kemudian coba untuk mengotentikasi, dan jika gagal, cari file log:
Ini akan memiliki kesalahan yang Anda cari.
sumber
/var/log/
ada, tapisecure
tidak ada. Bagaimana cara menemukan log mana yang sedang ditulis?/var/log/auth.log
, setidaknya di Ubuntu 14.04.1 saya.secure
file sebelum membaca komentar @axel di sini.Dalam kasus saya, saya harus mengubah izin / home / pengguna dari 0755 menjadi 0700 juga.
sumber
Dalam kasus saya, adalah masalah izin.
Saya mengubah level log menjadi
DEBUG3
, dan/var/log/secure
saya melihat baris ini:Googled dan saya menemukan posting ini:
https://www.daveperrett.com/articles/2010/09/14/ssh-authentication-refused/
Pada dasarnya, ini memberitahu saya untuk:
w
izin grup dari dir home user Anda700
satu.ssh
dir600
satuauthorized_keys
berkas.Dan itu berhasil.
Hal lain adalah bahkan saya mengaktifkan login root, saya tidak bisa mulai
root
bekerja. Lebih baik gunakan pengguna lain.sumber
Menjalankan Windows 8.1 Saya mengalami
server refused our key
masalah.Mengikuti panduan ini: https://winscp.net/eng/docs/guide_windows_openssh_server Sangat mudah untuk membuat koneksi menggunakan login Windows
username
danpassword
. Namun, mengautentikasi denganusername
kombinasi dengan aprivate key
, tanggapannya adalahserver refused our key
.Membuatnya bekerja dengan kunci publik turun ke izin pada file:
C:\ProgramData\ssh\administrators_authorized_keys
Ini adalah halaman yang berguna: https://github.com/PowerShell/Win32-OpenSSH/wiki/Troubleshooting-Steps
Hentikan dua layanan OpenSSH, lalu buka
command prompt
denganadmin permissions
. Lalu lari:C:\OpenSSH-Win32>c:\OpenSSH-Win32\sshd.exe -ddd
Catatan: tentukan path lengkap ke exe jika tidak
sshd
mengeluh. Ini membuat pemroses koneksi sekali pakai. Itu-ddd
verbose level 3.Setelah membuat koneksi, pemindaian log mengungkapkan:
Harus membuat file:
C:\ProgramData\ssh\administrators_authorized_keys
Dan salinpublic key
teks ke dalamnya, misalnya:ssh-rsa AAAA................MmpfXUCj rsa-key-20190505
Lalu simpan file. Saya menyimpan file sepertiUTF-8
denganBOM
. Tidak mengujiANSI
.Kemudian menjalankan baris perintah satu kali lagi, di log menunjukkan:
S-1-5-11
adalah nama yang diberikan untukSystem
.Untuk memperbaikinya
Bad permissions
, klik kanan padaadministrators_authorized_keys
file, bukaSecurity Tab
, klikAdvanced
tombol dan hapus izin yang diwariskan. Kemudian hapus semuaGroup or user names:
kecuali untuk nama pengguna login Windows, misalnya:YourMachineName\username
Izin untuk ituusername
harusRead Allow
, yangWrite Deny
lainnya tidak dicentang. Pemilik file juga harusYourMachineName\username
Ini memperbaiki masalah.
Tautan Berguna Lainnya:
Unduh OpenSSH-Win32.zip dari: https://github.com/PowerShell/Win32-OpenSSH/releases
C # contoh bagaimana menggunakan WinSCPnet.dll untuk membuat koneksi ke server OpenSSH: https://winscp.net/eng/docs/library#csharp
Berikut adalah potongan kode untuk membuat koneksi menggunakan
WinSCPnet.dll
:Gantikan
SshHostKeyFingerprint
danSshPrivateKeyPath
dengan nilai-nilai Anda sendiri.Edit: menambahkan tangkapan layar izin file administrator_authorized_keys:
Saat
OpenSSH SSH Server
dijalankan sebagai Layanan, maka hanyaSystem
harus memiliki izin. Namun, jika dijalankansshd.exe
dari command prompt, maka pengguna saat ini harus menjadi satu-satunya pengguna yang terdaftar (read allow, write deny).sumber
Saya menambahkan jawaban ini untuk membantu siapa pun, seperti saya, yang menghabiskan waktu berjam-jam menjelajahi internet tanpa hasil.
FOLDER RUMAH ANDA DAPAT DIENKRIPSI.
Atau dalam hal ini setiap folder tempat file "authorized_keys" Anda berada. Sobat, itu akan menghemat banyak waktu. Untuk memeriksanya, lakukan
pada direktori yang status enkripsi-nya ingin Anda tentukan. Jika folder tersebut berisi folder bernama ".encryptfs" jawabannya adalah, ya, folder itu dienkripsi. Ini akan menghalangi kemampuan Anda untuk mengakses file "authorized_keys" yang berisi kunci ssh publik yang diperlukan untuk verifikasi.
Untuk memperbaikinya, tempatkan file "authorized_key" di pohon direktori yang tidak berisi enkripsi.
sumber
Solusi sederhana yang saya temukan adalah memindahkan
authorized_keys
file dari direktori .ssh yang tersembunyi dan meletakkannya di direktori sistem ssh:Segera setelah saya melakukan ini, itu berhasil tanpa masalah.
sumber
mengalami masalah yang sama di windows server 2008 r2 dan banyak mengeksplorasi untuk dipecahkan, akhirnya lakukan itu dengan mengikuti:
buka C: \ Program Files (x86) \ OpenSSH \ etc \ sshd_config dengan textpad atau editor teks lainnya
hapus komentar dari baris berikut, setelah menghapusnya akan terlihat seperti berikut:
simpan dan coba masuk dengan kunci pribadi sekarang. Selamat bersenang-senang.
sumber
Terima kasih kepada nrathaus dan
/var/log/auth.log
investigasi pada level debug muncul sebagai berikut.Alasan lainnya adalah direktori beranda Anda mungkin memiliki izin yang berbeda dari 755.
sumber
Saya mengalami masalah ini hari ini dan masalah saya adalah ketika menyalin kunci publik dari file, karakter baris baru juga disertakan. Anda dapat menggunakan ": set list" di vim untuk melihat semua baris baru yang tersembunyi dan pastikan untuk menghapus semua baris baru kecuali yang terakhir. Juga, kunci saya kehilangan "ssh-rsa" pada awalnya. Pastikan Anda memilikinya juga.
sumber
Bagi mereka yang menerima kesalahan ini dari Windows Server, saya menerima kesalahan yang sama ini dan itu adalah masalah akun pengguna. Dengan banyak organisasi, kebijakan grup untuk Administrator mungkin tidak mengizinkan pengaturan SSH Server dan koneksi. Dengan jenis penyiapan tersebut, ini harus dilakukan dari akun Admin Lokal. Mungkin layak untuk dilihat jika Anda telah mengonfirmasi bahwa tidak ada kesalahan ketik pada kunci publik.
sumber
Dalam kasus saya, saya harus menonaktifkan SELinux di Centos6.6 agar berfungsi :)
Edit / etc / selinux / config dan atur yang berikut ini dan kemudian reboot host.
BTW ... lupa menyebutkan bahwa saya harus menyetel LogLevel = DEBUG3 untuk mengidentifikasi masalah.
sumber
Saya mengalami kesalahan yang sama pada solaris tetapi ditemukan di /var/adm/splunk-auth.log berikut ini:
Di / etc / shadow akun dikunci:
Menghapus bagian "* LK *":
dan saya bisa menggunakan ssh dengan authorized_keys seperti biasa.
sumber
Dalam kasus saya itu disebabkan oleh (
/etc/ssh/sshd_config
):Berubah menjadi
yes
, memulai ulang layanan dan masuk secara normal.sumber
Saya telah menyelesaikan masalah ini, puttygen adalah perangkat lunak pihak ketiga, kunci ssh yang dihasilkan olehnya tidak digunakan secara langsung, jadi Anda harus melakukan beberapa perubahan. Misalnya, tampilannya seperti ini
Saya menghilangkan beberapa huruf di tengah, diganti dengan *, jika tidak, StackOverflow memberi tahu saya bahwa format kode salah, jangan biarkan saya memposting。
ini adalah kunci ssh saya yang dihasilkan oleh puttygen, Anda harus mengubahnya
Dalam kasus saya, saya telah menghapus beberapa komentar, seperti
dan tambahkan
ssh-rsa
di awal, tambahkanyourname@hostname
di akhir. catatan : jangan hapus==
di akhir dan Anda harus mengubah "namaAnda" dan "nama host" untuk Anda, Dalam kasus saya, adalahuaskh@mycomputer
, namaAnda adalah bahwa Anda ingin masuk ke vps Anda. ketika semua hal ini telah dilakukan, Anda dapat mengunggah publik -key ke rumah uaskh ini~/.ssh/authorized_keys
olehcat public-key >> ~/.ssh/authorized_keys
makasudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys
maka Anda harus mengubah / etc / ssh / sshd_config,RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
sistem operasi saya adalah CentOS 7, ini adalah pertama kalinya saya untuk pertanyaan anwser, saya akan mencoba upaya saya untuk melakukan, Terima kasih!sumber
Ya Tuhan, aku menghabiskan waktu berhari-hari untuk memperbaiki ini. Jadi inilah yang berhasil untuk saya. Saya kembali ke lipatan root seperti ini: cd / root / mkdir .ssh cd .ssh chmod 700 .ssh nano -w authorized_keys service ssh restart Jadi saya menggunakan root untuk login melalui Putty dan berhasil. jadi coba lakukan hal yang sama dengan pengguna yang ingin Anda gunakan dalam dempul.
sumber
Dalam kasus saya, itu adalah pengguna yang salah: pengaitan grup. Saya menyelesaikan pengaturan pengguna dan grup yang tepat:
sumber
Saya menggunakan file PUTTYgen dengan psftp, dan saya mengalami masalah ini di Windows Server saya ketika kami diminta untuk membuat kunci baru untuk klien. File private_key_name .ppk dan file open_ssh.txt harus berada di direktori yang sama agar koneksi dapat bekerja.
sumber
Dalam kasus saya, rumah di nfs adalah 777, perlu 750. Itu memperbaiki masalah.
sumber
Saya memiliki masalah ini di mana sshd hanya membaca
authorized_keys2
.Menyalin atau mengganti nama file memperbaiki masalah saya.
PS Saya menggunakan Putty dari Windows dan menggunakan PuTTyKeygen untuk pembuatan pasangan kunci.
sumber
Saya menghadapi masalah serupa ketika mencoba masuk melalui Mobaxterm. Kunci pribadi dibuat melalui puttygen. Regenerasi kunci membantu dalam kasus saya.
sumber
Saat menggunakan Cpanel Anda dapat memeriksa apakah kunci tersebut diotorisasi
Akses SSH >> Kunci publik >> Kelola >> Otorisasi atau Batalkan Otorisasi.
sumber
jika Anda mendapatkan kesalahan ini
/var/log/secure
itu berarti kunci Anda memiliki ruang, jika Anda membuat kunci melalui puttgen saat Anda melihat
.ppk
file, akan terlihat seperti ini:dan ketika Anda mencoba menempelkannya Anda akan mendapatkan kesalahan dalam membaca kunci, jadi coba edit kunci dan buat satu baris dan coba
ini akan terlihat seperti sesuatu
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG+rKz93l7em1BsUBzjHPMsswDal74MLaJyhQD0pE23NS1izahbo1sJGnSJu2VJ//zxidSsba6xa6OvmeiKTwCz0E5GMefdGVdpdbTlv99qjBl1+Nw1tDnHIC0+v9XmeZERQfCds9Kp1UivfReoYImntBCgLtNyqRYrSu8csJCt7E1oY8QK6WP1vfYgAQ2taGyS9+g7FHyyf5VY2vH3oWzzbqzxjsSLAv3zEQSm1LzSw9Pvc8iwasFyUMBOPj31CKQYTXyX8KpJTr0Zb7oqMauBE5LVwxZhlcJHbj0FsMbF/+GRjvgexymCi3bHmwGQ6FEADNd0RkhdQ== username@domainname
sumber
Apa yang berhasil bagi saya adalah:
Kali ini berhasil untuk saya. Namun saya tidak tahu mengapa ia tidak memiliki informasi file kunci saya pada awalnya ketika instans diluncurkan. Periksa tautan ini juga https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectingMindTerm
sumber
Dalam kasus saya, masalahnya seperti ini, selama pembuatan kunci ssh, saya sengaja mengubah direktori default dari kunci tersebut. Jadi, daripada menggunakan lokasi ~ / .ssh / authorized_keys yang saya pilih untuk digunakan
~/home/user/folder1/.ssh/authorized_keys
, agar perubahan ini bekerja, saya seharusnya membuat perubahan yang sama tentang lokasi baru pada file ini/etc/ssh/sshd_config
. Tetapi sampai saya menyadari hal ini, saya sudah mencoba beberapa solusi yang disarankan oleh orang lain di sini termasuk mengatur izin folder rumah ke700
dan direktori .ssh ke600
.sumber
Langkah-langkah untuk memperbaiki Root mount (Yang saya ikuti ketika saya mengubah izin dengan folder ec2-user dan file kunci otorisasi) Proses ini akan mirip dengan melepaskan dan memasang pen-drive
Berikut adalah beberapa skenario lain yang mungkin Anda temui -
Langkah-langkah untuk memperbaikinya
Sekarang setelah Anda login ke ec2 baru, jalankan langkah-langkah di bawah ini
sudo mount /dev/mapper/rootvg-home /mnt
Sekarang kami telah memperbaiki volume kami dengan masalah yang kami hadapi. Sebagian besar bisa jadi masalah izin pengguna - Umount / mnt untuk melepasnya - Sekarang pergi ke konsol dan arahkan ke volume yang dilampirkan ke instance baru dan lepaskan - Setelah terlepas, lampirkan ke volume baru Anda sebagai / dev / sda1
Dengan itu Anda harus bisa login dengan sukses
sumber
Seperti pengalaman saya, saya menyarankan Anda untuk menghasilkan kunci dari dempul, tidak boleh menghasilkan dari sisi linux. Karena kuncinya adalah format PEM lama. Pokoknya, hanya saran saya. Saya melakukan langkah-langkah di bawah ini dan bekerja dengan baik dengan saya dan dengan tim saya.
Hasilkan pasangan kunci dengan PuTTYGen.exe di lokal Anda (ketik: RSA, panjang: 2048 bit).
Simpan kunci pribadi / publik sebagai file " id_rsa.ppk / id_rsa.pub " di lokal Anda.
Buat file "authorized_keys" di lokal Anda, lalu masukkan kunci publik di " id_rsa.pub " ke " authorized_keys ". Ingat konten harus dimulai dengan " ssh-rsa " dan hanya satu baris .
Jalankan perintah ini:
chmod 700 .ssh
chmod 600 .ssh / authorized_keys
chown $ USER: $ USER .ssh -R
Uji pengaturan koneksi Anda dengan memuat kunci pribadi " id_rsa.ppk " di profil PuTTY.exe, lalu klik buka (masukkan frasa sandi Anda jika ada).
sumber
periksa kunci Anda, ini harus menjadi kunci rsa (id_rsa.pub) hari ini dan bukan lagi kunci dss (id_dsa.pub), gunakan puttygen 0.70 dan pilih RSA pada jenis kunci yang akan dihasilkan, ganti kunci publik pada host ~ /. ssh / authorized_keys
sumber
Setelah menambahkan kunci, masuk seolah-
ec2-user
olah Anda menggunakan mesin Amazon Linuxsumber
Alasan lain bisa jadi UTF-8 BOM dalam
authorized_keys
file tersebut.sumber