Pertanyaan Server terus meminta kata sandi setelah saya menyalin Kunci Publik SSH saya ke authorized_keys


Saya memiliki Server Ubuntu, berjalan di Cloud. Saya membuat pengguna (git). Di dalam folder /home/git, Saya telah membuat .ssh/ dir, dan authorized_keys mengajukan.

Tapi, ketika saya memasukkan Kunci Publik SSH saya di authorized_keys file, server terus menanyakan kata sandi.

Apa kesalahan yang telah aku perbuat?


43
2018-03-07 12:34


asal


Di mana Anda menempatkan publik ypur? di git pengguna atau di root? bagaimana Anda mengatasinya? sebagai ssh <you> @ <server> o <git> @ <server> atau root @ <server> .. periksa itu dan tambahkan info lebih lanjut. - maniat1k
askubuntu.com/questions/307881/… - Vineet


Jawaban:


Di sisi server, daemon ssh akan mencatat kesalahan /var/log/auth.log, jadi periksa file itu untuk melihat apa yang sedang dilaporkan.

Dari sisi klien, ketika membuat koneksi Anda dapat menambahkan -v bendera (atau -vv atau -vvv) untuk meningkatkan verbositas. Anda mungkin dapat mengidentifikasi masalah Anda dengan cara ini.

Berikut hal-hal lain yang perlu diperiksa.

  • Yakinkan /home/git/.ssh/authorized_keys dimiliki oleh git.
  • Yakinkan /home/git/.ssh/authorized_keys memiliki mode 600 (-rw-------).

Periksa juga /etc/ssh/sshd_config mengajukan.

  • PubkeyAuthentication harus di set ke yes
  • Ada juga yang AuthorizedKeysFile direktif yang menentukan jalur di mana kunci resmi harus ditempatkan. Pastikan itu dikomentari atau pada default dari %h/.ssh/authorized_keys.

42
2018-03-07 12:56



Terima kasih! Saya akan mencoba opsi ini dan kembali lagi nanti untuk memberi umpan balik! - Luis Dalmolin
Apa yang Anda lakukan jika Anda tidak melihat /var/log/auth.log mengajukan? Apakah ada cara untuk mengaktifkan ini? - Steve Robbins
Log mungkin ada di / var / log / secure jika Anda tidak memiliki /var/log/auth.log - CoverosGene
Kesalahan konyol, saya telah scp-ed file .pub hanya di dalam folder .ssh di server yang ingin saya hubungi. Pastikan untuk memindahkannya ke folder authorized_keys. - CenterOrbit
Mengaturnya dalam mode rw melakukannya untuk saya. Terima kasih! - Oxidator


Juga pastikan direktori home pengguna Anda (dalam kasus Anda, / home / git) hanya dapat ditulis oleh Anda. Saya memiliki masalah ini sekali karena direktori home saya dapat ditulis-grup. /var/log/auth.log berkata di dalamnya: "Autentikasi ditolak: kepemilikan buruk atau mode untuk direktori / rumah / chuck". (Ini adalah untuk memastikan tidak menggunakan file authorized_keys yang orang lain selain Anda telah main-main dengan!)


17
2018-06-14 13:32



Meskipun ini sangat membantu, saya pikir ini lebih merupakan tambahan jawaban dari xeyes. - gertvdijk
Astaga, terima kasih banyak! Mataku terbakar karena semua pencarian yang saya lakukan di google. Akhirnya berhasil !. Terima kasih banyak. - GTRONICK
Terima kasih! Saya menghabiskan berjam-jam mencari solusi ... dan ini menyelesaikan semua masalah saya. - Afaria
ya. hanya itu saja. senang saya memutuskan untuk membaca jawaban berikutnya - Katushai
Juga check in / etc / passwd apa direktori home dari pengguna. Masalah ganjil saya adalah itu bukan masalah standar - drodsou


Ada beberapa cara berbeda untuk menyelesaikan ini: Anda juga dapat mengonfigurasi sshd (sisi server) atau ssh (sisi-klien) untuk tidak menggunakan otentikasi kata sandi. Menonaktifkan otentikasi kata sandi di server membuat server Anda lebih aman, tetapi Anda akan mendapat masalah jika Anda kehilangan kunci Anda.

Untuk membuat ssh (sisi-klien) menggunakan otentikasi pubkey, tambahkan beberapa opsi ke ssh perintah:

ssh -o PubkeyAuthentication=yes -o PasswordAuthentication=no -X git@server

Jika ini berhasil, Anda dapat mengatur PasswordAuthentication=no opsi secara permanen dalam file konfigurasi klien ssh /etc/ssh/ssh_config seluruh sistem atau ~/.ssh/config spesifik-pengguna (berdasarkan detail, lihat man ssh_config).


4
2018-03-07 12:48



Secara default semua konfigurasi klien SSH (/etc/ssh/ssh_config) pada sistem Debian / Ubuntu lebih suka  PubkeyAuthentication dan coba yang pertama seperti yang akan Anda lihat ketika memohon ssh dalam mode verbose. - gertvdijk


Apakah Anda menggunakan ~ / .ssh / config pada komputer lokal Anda? Saya telah mengalami masalah ini ketika saya menggunakan direktif IdentityFile dalam file konfigurasi dan arahkan ke kunci publik. Sebagai contoh:

Host Cloud
    Hostname cloud.theclouds.com
    User git
    IdentityFile ~/.ssh/config/mykey # This is correct

    # IdentityFile ~/.ssh/config/mykey.pub # This is incorrect

3
2017-11-20 22:09





Jika folder rumah Anda dienkripsi maka Anda authorized_keys file tidak dapat dibaca sebelum login. Anda harus memindahkannya ke luar rumah Anda.

Di sini dijelaskan dan bagaimana melakukannya: https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Troubleshooting


2
2018-03-12 06:59





Hal lain yang harus diperiksa adalah apakah ada pengembalian kereta ekstra di kunci publik Anda. Saya mengikuti saran di atas untuk meninjau /var/log/auth.log dan melihat kesalahan saat membaca kunci. Kuncinya kira-kira dua garis panjang, bukan empat. Ada pengembalian kereta ekstra yang tertanam di kunci.

Saat menggunakan editor vi, gunakan shift-j untuk menggabungkan garis dan menghapus ruang ekstra di string kunci.


1
2018-05-23 00:02



Saya tiga kali mengecek perizinan dan sshd_config. Membenturkan kepalaku ke dinding selama setengah jam. Ini adalah kesalahanku! Entah bagaimana, saya sudah terbiasa mengakhiri semua file yang saya edit dengan tambahan linebreak. Bahkan dengan satu kunci dan carriage return di akhir, ini cukup untuk mengacaukan otorisasi. - jrhorn424
Pastikan Anda memiliki ----- END RSA PRIVATE KEY ----- bit juga. - tobych


Jika Anda memiliki beberapa kunci privat, gunakan sakelar -v pada perintah koneksi ssh Anda untuk memeriksa apakah kunci primer lainnya sedang mencoba terhubung. Jika tidak, beri tahu klien ssh untuk menggunakannya dengan perintah berikut:

ssh-add path/to/private/key

1
2018-04-17 08:28





Anda juga dapat menambahkan kunci Anda ke Agen SSH:

u@pc:~$ ssh-agent bash
u@pc:~$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/u/.ssh/id_rsa: # ENTER YOUR PASSWORD
Identity added: /home/u/.ssh/id_rsa (/home/u/.ssh/id_rsa)

1
2017-09-09 12:15