Apa artinya kesalahan ssh ini?

9

Ini adalah pilihan terakhir saya. Saya sudah berusaha mencari tahu masalahnya di sini selama berjam-jam.

Inilah masalahnya: Saya telah menyalin kunci pribadi saya dari mesin # 1 ke mesin # 2. Mesin # 1 dapat terhubung melalui ssh ke server dengan kunci publik saya baik-baik saja, tetapi mesin # 2 memberikan output berikut, ketika mencoba terhubung ke server:

$ ssh -vvv -i /home/kevin/.ssh/kev_rsa [email protected] -p 22312
OpenSSH_5.3p1 Debian-3ubuntu6, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.1.244 [192.168.1.244] port 22312.
debug1: Connection established.
debug3: Not a RSA1 key file /home/kevin/.ssh/kev_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace

...


Permission denied (publickey).

Jelas ada lebih banyak keluaran debug yang telah saya hilangkan, dan saya dapat memberikan atas permintaan. Namun saya yakin itu tidak suka file kunci pribadi saya.

Saya juga memiliki kecurigaan bahwa itu ada hubungannya dengan bagaimana saya menyalinnya dari mesin # 1 ke mesin # 2. Saya menyalin / menempelkan teks dari kunci pribadi ke flash drive. Ini mungkin menjadi masalah, namun, ketika saya menduplikasi metode ini pada file kunci pribadi lain yang berfungsi, dan melakukan perbedaaan pada yang asli, dengan yang disalin / ditempelkan, mereka identik.

Saya telah berjuang dengan ini. Jika saya bisa mendapatkan sedikit informasi tentang mengapa itu tidak suka kunci saya, saya bisa memperbaikinya saya yakin. ada yang punya ide tentang ini? Apakah ada beberapa meta-data di suatu tempat yang memberitahu ssh bahwa file sebenarnya adalah kunci RSA?

kevin
sumber
Dan apa yang /var/log/auth.logdi server katakan?
womble
Untuk klarifikasi, kunci publik dari mesin 1 terhubung ke server. Kunci pribadi dari mesin 1, berjalan di mesin 2 tidak akan terhubung ke server?
Dru
Saya memiliki pasangan kunci yang sama di kedua mesin, dan kunci publik ada di server. Saya salin menempelkan kunci dari mesin klien 1, yang tidak memiliki masalah menghubungkan ke server, di sini ke komputer rumah saya (mesin 2) yang mengalami masalah otentikasi ini.
kevin
@ Womble, Sayangnya, saya tidak dapat mengakses server, jika saya bisa mendapatkan ini tahu saya akan dapat ssh langsung masuk .. Ahh, ironi ...;)
kevin
Apa sajakah sistem operasi pada dua mesin klien? Mungkinkah pemindahan kunci privat telah membuat akhir baris atau teks yang diperkenalkan (mungkin garis atau spasi kosong) sebelum baris pembuka?
Stobor

Jawaban:

7

Dalam pengalaman saya dua kesalahan auth berbasis kunci yang paling umum adalah

  1. Izin yang terlalu luas pada $HOME/.sshdirektori
  2. Kesalahan dalam menyalin kunci publik ke sistem jarak jauh

Izin File

OpenSSH melakukan banyak upaya untuk melindungi Anda dari diri Anda sendiri. Cara paling berdampak pengguna ini terjadi adalah dengan memberlakukan pembatasan keras pada siapa yang memiliki akses ke folder ssh lokal Anda. Anda benar-benar hanya menginginkan Anda, dan hanya Anda, untuk mengakses direktori. Yah, dan siapa pun dengan uid = 0, tapi tidak ada jalan keluar yang bagus. Jadi yang perlu Anda lakukan hanyalah mengubah izin Anda: chmod -R go-rwx ~/.sshIni akan menghapus hak baca, tulis, dan jalankan file apa pun di bawah direktori .ssh dari semua pengguna kecuali pemiliknya, yaitu Anda .

Masalah Kunci Resmi

File yang berisi kunci publik Anda, biasanya $HOME/.ssh/authorized_keysharus sesuai dengan formulir yang sangat spesifik agar SSH memahami cara menerima kunci pribadi. Setiap kunci harus terdiri dari, setidaknya, 2 bidang

  1. Jenis kunci yang digunakan (RSA, DSA, RSA1, dll)
  2. Kunci

Setiap kunci, beserta semua opsi dan bagian komponennya, harus dicantumkan satu per baris dalam file ini. Karena kunci cenderung sangat panjang, mereka akan sering membungkus dan muncul sebagai dua garis pada terminal Anda. Ini kadang-kadang akan menyebabkan malapetaka ketika mencoba untuk menyalin / menempel, karena kadang-kadang satu atau lebih baris baru akan dimasukkan di mana pun kunci membungkus layar Anda. Memperbaiki masalah ini bisa sedikit rumit untuk pemula shell.

Coba jalankan
wc -l ~/.ssh/authorized_keys
Ini akan mencetak jumlah baris dalam file. Bandingkan angka itu dengan jumlah kunci yang Anda harapkan ada dalam file. Jika Anda hanya akan menerima kunci yang satu ini, Anda juga bisa hanya membuat salinan file kunci publik, karena ini adalah format yang sama dengan file kunci resmi Anda. Sesuatu seperti
scp -p ~/.ssh/kev_rsa.pub remotehost:~/.ssh/authorized_keys
atau, jika Anda memiliki kunci publik di sistem yang sama yang dapat Anda lakukan
cat ~/.ssh/kev_rsa.pub >> ~/.ssh/authorized_keys

Selain itu, lihat file log pada host jarak jauh dan lihat apakah ada kesalahan yang dilaporkan di sana. File-file kemungkinan besar akan menjadi /var/log/secure.logatau /var/log/auth.

Scott Pack
sumber
1
Hai, Terima kasih atas upaya Anda di sini. Saya sangat menghargainya. Ini jelas bukan masalah izin. Saya sudah memverifikasi izin yang benar. (Saya harus menambahkan itu sebagai peringatan). Juga, meskipun saya tidak dapat mengakses kunci asli sekarang, saya telah menduplikasi proses yang saya gunakan untuk menyalin kunci yang saya gunakan. Saya bahkan melakukan md5sum untuk memverifikasi bahwa file-file tersebut identik. Masuk akal?
kevin
1
Dan lagi, saya tidak dapat mengakses server. Jenis seluruh masalah di sini ...;)
kevin
@Scott: make a copy of the private key fileharus menjadi kunci publik (seperti yang ditunjukkan dalam contoh Anda)
mlp
0

Meskipun, Anda mungkin harus membuat pasangan kunci baru untuk mesin 2 untuk terhubung ke server. Seringkali kunci publik akan mencantumkan nama pengguna dan mesin yang menghasilkannya. Ini harus jelas dalam file otor_keys Anda di server.

Dru
sumber
2
Saya mendapat kesan itu mengabaikan mereka, bahwa itu hanya komentar untuk membantu Anda mengidentifikasi mereka ketika melihat otor_keys. Lagi pula, sekali lagi, saya hanya menyalin / menempelkan kunci. Jadi mereka identik. Saya sangat ragu apakah itu memeriksa nama host Anda. Jika ya, saya bisa mengubahnya dengan mudah. Apa-apaan, aku akan tetap mencobanya ...
kevin
0

Pesan debug yang Anda berikan berarti bahwa file kunci pribadi dibaca dengan asumsi bahwa itu sebenarnya file kunci publik / host resmi. Ini mungkin bukan kesalahan fatal (saya mendapatkan pesan seperti itu bahkan untuk koneksi yang berfungsi). Apakah itu mengatakan sesuatu tentang "Penawaran" atau "kami mengirim"?

Ansgar Esztermann
sumber
-3

Coba bandingkan file konfigurasi ssh antara kedua server.

yaitu. sesuatu seperti cat /etc/sshd_config

ae.
sumber
Seharusnya aku lebih jelas. Ada dua klien, satu server. Saya tidak dapat mengakses server, atau mesin klien lainnya. Saya akan dapat mengakses server segera setelah kunci sialan ini akan mengotentikasi;)
kevin