Kunci publik SSH - tidak ada metode otentikasi yang didukung Tersedia (server mengirim kunci publik)

Saya memiliki pengaturan server 12.10 di mesin virtual dengan jaringannya diatur ke bridged (pada dasarnya akan dilihat sebagai komputer yang terhubung ke switch saya).

Saya menginstal opensshd melalui apt-get dan dapat terhubung ke server menggunakan putty dengan nama pengguna dan kata sandi saya.

Saya kemudian mulai mencoba membuatnya menggunakan otentikasi kunci publik / pribadi. Saya melakukan hal berikut:

  1. Dihasilkan kunci menggunakan PuttyGen.
  2. Memindahkan kunci publik ke /etc/ssh/myusername/authorized_keys (Saya menggunakan direktori home terenkripsi).
  3. Mengatur sshd_config seperti begitu:

    PubkeyAuthentication yesAuthorizedKeysFile /etc/ssh/%u/authorized_keysStrictModes noPasswordAuthentication noUsePAM yes

Ketika saya terhubung menggunakan putty atau WinSCP, saya mendapatkan kesalahan yang mengatakan tidak ada metode otentikasi yang didukung Tersedia (server mengirim kunci publik).

Jika saya lari sshd dalam mode debug, saya melihat:

PAM: initializing for "username"PAM: setting PAM_RHOST to "192.168.1.7"PAM: setting PAM_TTY to "ssh"userauth-request for user username service ssh-connection method publickey [preauth]attempt 1 failures 0 [preauth]test whether pkalg/pkblob are acceptable [preauth[Checking blacklist file /usr/share/ssh/blacklist.RSA-1023Checking blacklist file /etc/ssh/blacklist.RSA-1023temporarily_use_uid: 1000/1000 (e=0/0)trying public key file /etc/ssh/username/authorized_keysfd4 clearing O_NONBLOCKrestore_uid: 0/0Failed publickey for username from 192.168.1.7 port 14343 ssh2Received disconnect from 192.168.1.7: 14: No supported authentication methods available [preauth]do_cleanup [preauth]monitor_read_log: child log fd closeddo_cleanupPAM: cleanup

Mengapa ini terjadi dan bagaimana saya bisa memperbaikinya?

Masalah terpecahkan:

Sepertinya ada masalah dengan file kunci publik saya. PuttyGen akan membuat file kunci publik yang terlihat seperti:

---- BEGIN SSH2 PUBLIC KEY ----Comment: "rsa-key-20121022"AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8=---- END SSH2 PUBLIC KEY ----

Namun, ini tidak akan berhasil, jadi yang perlu Anda lakukan adalah membuka kunci di PuttyGen, lalu menyalinnya dari sana (ini menghasilkan kunci dalam format yang tepat dan dalam 1 baris):

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022

Paste ini ke authorized_keys maka itu harus bekerja.

  1. Mengedit /etc/ssh/sshd_config file.
  2. Perubahan PasswordAuthentication dan ChallengeResponseAuthentication untuk yes.

3A. mulai ulang ssh /etc/init.d/ssh restart.
Atau
3b. lebih baik Anda gunakan service sshd restart

Hanya tip yang saya harap dapat membantu orang lain dengan sakit kepala yang saya alami. F21 benar bahwa Anda perlu menyalin kunci dari jendela PuTTYGen alih-alih menyimpan file, tetapi setelah menyalin, cara Anda menempel mungkin berdampak signifikan pada apakah kunci Anda akan berfungsi atau tidak. Beberapa editor akan mengubah teks saat Anda menempel, atau melakukan sesuatu dengan baris baru atau sesuatu yang membuat file authorized_keys tidak valid.

Apa yang saya temukan paling tidak mungkin rusak adalah menggemakan string penuh dan mengarahkan output ke file. Mengklik kanan di PuTTY untuk menempelkan string kunci ke baris perintah, hasilnya seperti ini (dengan contoh yang diberikan di atas):

echo [right-click-to-paste-here] > /etc/ssh/username/authorized_keys

Anda akan berakhir dengan ini:

echo ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022 > /etc/ssh/username/authorized_keys

>>>Keuntungan lain dari metode ini adalah Anda dapat menambahkan beberapa kunci dengan cara ini dengan menggunakan untuk menambahkan alih - alih menimpa, misalnya:

echo ssh-rsa AAAAB3<...snip...>rJe8= rsa-key-20121022 >> /etc/ssh/username

Harapan yang membantu seseorang.

Kami sudah menggunakan jenis kunci yang tepat (ppk bukan pem)..

Dalam kasus kami, itu adalah masalah dengan izin file untuk authorized_keys pada folder pengguna server. Itu harus-rw-r-r -... Itu-rw-rw-r--

ssh sangat rewel tentang perms file.

Diselesaikan:

  1. Anda perlu men-download puttyGEN dan menghasilkan publik dan kunci pribadi.
  2. Saya telah menetapkan kata sandi ke kunci pribadi saya.
  3. >>>kemudian konfigurasikan kunci pribadi di putty. Putty-SSH-Auth-Browse ke pribadi Anda.
  4. Pastikan Anda memiliki jalur yang sama untuk kunci pribadi dan publik.
  5. Anda perlu mengkonfigurasi kunci publik di server. (Dalam kasus saya, saya telah berbicara dengan orang server dan bertanya apakah dia dapat menambahkan kunci publik saya ke server). Anda memerlukan kunci publik di sisi lain (server) koneksi.

Dalam kasus saya alasannya adalah bahwa file kunci pribadi (.ppk)telah dihapus di Agen otentikasi Putty yaitu Kontes. Saya baru saja memperbaruinya lagi untuk kontes di sana dan koneksi bekerja dengan sempurna setelah itu.

Dalam kasus saya, saya memiliki dua contoh AWS. Salah satunya bekerja dengan sempurna, yang lain bekerja saat menghubungkan melalui Intellij Idea, tetapi bukan dari Putty, tetapi berfungsi di awal. Jadi dalam kasus saya itu harus sesuatu tentang dempul