EDIT: Puting persis apa yang dilakukan.
Saya perlu SSH untuk localhost
tanpa kata sandi, cara biasa melakukannya (dengan kunci publik) tidak berfungsi.
user@PC:~$ rm -rf .ssh/*
user@PC:~$ ssh-keygen -t rsa > /dev/null
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
user@PC:~$ ls .ssh/
id_rsa id_rsa.pub
user@PC:~$ ssh-copy-id -i localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is f7:87:b5:4e:31:a1:72:11:8e:5f:d2:61:bd:b3:40:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
user@localhost's password:
Now try logging into the machine, with "ssh 'localhost'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
user@PC:~$ ssh-agent $SHELL
user@PC:~$ ssh-add -L
The agent has no identities.
user@PC:~$ ssh-add
Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
user@PC:~$ ssh-add -L
ssh-rsa ...MY KEY HERE
user@PC:~$ ssh-copy-id -i localhost
user@localhost's password:
Now try logging into the machine, with "ssh 'localhost'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
user@PC:~$ ssh localhost echo 'testing'
user@localhost's password:
user@PC:~$
Jadi seperti yang Anda lihat di perintah terakhir masih menanyakan kata sandi !!! Bagaimana saya bisa memperbaikinya ?? Ubuntu-10.04, OpenSSH_5.3p1
EDIT2:
Menambahkan beberapa info tentang sshd
user@PC:~$ cat /etc/ssh/sshd_config | grep Authentication
# Authentication:
RSAAuthentication yes
PubkeyAuthentication yes
RhostsRSAAuthentication no
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
ChallengeResponseAuthentication no
# PasswordAuthentication yes
#KerberosAuthentication no
#GSSAPIAuthentication no
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
EDIT3: Hasil iklan dari $ ssh -vv localhost
$ssh -vv localhost
...
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/user/.ssh/identity
debug1: Offering public key: /home/user/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/user/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
user@localhost's password:
EDIT4:
Hanya memeriksa apakah file-file itu sama dan md5sum setuju
RSAAuthentication yes
danPubkeyAuthentication yes
di / etc / ssh / sshd_config Anda? Apa yang ditampilkan ssh -vv localhost? Saya baru saja mencoba ini di kotak 10,04 dan tidak punya masalah ..Jawaban:
Pertama-tama, Anda harus memahami apa yang Anda lakukan:
Anda menyalin kunci publik
.ssh/id_rsa.pub
melalui ssh, ke host yang sama (itulah host lokal, host yang sama). Jika Anda menggantilocalhost
dengan beberapa host lain, itu akan lebih masuk akal (tetapi jika Anda mencoba ini demi mempelajari cara melakukannya, tidak apa-apa).Setelah Anda memiliki salinan kunci publik di host jarak jauh (atau yang sama dengan yang Anda gunakan), Anda harus memastikan bahwa Anda menggunakannya untuk otentikasi, di host Anda yang sebenarnya, memanggil
ssh-agent
/ssh-add
:Kemudian, jika Anda memberikan frasa sandi, Anda akan diminta untuk memasukkannya setelah itu
ssh-add
. Jika Anda membuat kunci pribadi tanpa frasa sandi, maka hanya itu.sumber
ssh-add
, edit pertanyaan Anda dan masukkan semua yang Anda lakukan. Semakin banyak informasi yang Anda berikan, semakin baik dan semakin cepat jawabannya.eval
"?Telah menemukan masalahnya.
Menjalankan server dengan debug:
Saya menemukan itu tidak dapat membaca auth_key
Memperbaikinya.
sumber
Lakukan langkah-langkah berikut
Gunakan file default dan frasa sandi kosong (Cukup tekan enter pada 2 langkah berikutnya)
Salin konten ~ / .ssh / id_rsa.pub ke ~ / .ssh / berwenang_kunci
Pastikan yang berikut adalah izinnya
Juga, pastikan izin untuk direktori .ssh. Ini juga penting
sumber
authorized_keys
hingga 0600 menyelesaikan masalah, sementara izin.ssh
direktori tidak berpengaruh pada sshing localhostSederhanakan konfigurasi server
Saya pikir Anda mungkin perlu menonaktifkan otentikasi berbasis kata sandi. Ini adalah sshd_config yang saya gunakan
Cobalah sesuatu yang minimal terlebih dahulu, kemudian tambahkan karena Anda membutuhkan kemampuan ekstra.
Memperbarui:
Periksa log server
Dari EDIT3 Anda, saya melihat bahwa otentikasi kunci publik gagal sebelum klien mencoba otentikasi berbasis kata sandi. syslog server Anda mungkin berisi beberapa pesan dari sshd yang menjelaskan ini.
Muat ulang konfigurasi yang diubah
Ingatlah untuk memberi isyarat
sshd
untuk memuat ulang perubahan konfigurasi. Misalnyakill -HUP $(cat /etc/sshd.pid)
sumber
Mengenai posting di atas, saat menghadapi masalah yang sama, saya baru saja mengubah baris
di file / etc / ssh / sshd_config dan berhasil.
Apalagi mungkin lebih baik digunakan
untuk memuat ulang perubahan konfigurasi sshd.
sumber
Solusi lain untuk fitur Red Hat Enterprise Linux 6.5 SELinux mencegah sshd dari membaca $ HOME / .ssh adalah dengan menggunakan restorecon, lihat penjawab saya di sini /superuser//a/764020/213743 .
sumber
Bagi saya itu sesederhana
sumber
Saya memiliki masalah yang sama, saya mengikuti 3 langkah untuk membuat kata sandi lebih sedikit masuk dan berfungsi dengan baik
sumber