SSH Key tidak ditemukan masuk ke CentOS 5.5 dari Windows (Cygwin)

2

Saya mengalami kesulitan masuk ke VPS yang menjalankan CentOS 5.5 menggunakan otentikasi kunci Publik. Saya bisa masuk ke akun pengguna standar dan akun root menggunakan otentikasi kata sandi. Saya menggunakan Windows dan Cygwin, semua hal Cygwin dan Windows telah berfungsi dengan baik selama berbulan-bulan; Saya yakin masalahnya adalah sisi server.

Saya telah menggunakan ssh-keygen untuk membuat kunci pribadi id_rsa dan kunci publik id_rsa.pub. Saya telah menyalin ini ke direktori pengguna di server dan selesai cat id_rsa.pub >> authorized_keys. Direktori /home/myuser/.ssh saya disetel ke 700, file otor_keys diatur ke 600.

Saat masuk ke sistem saya melaporkan hal berikut (-vvv):

Next authentication method: publickey
Offering RSA public key /.ssh/id_rsa
send_pubkey_test
we sent a publickey packet, wait for reply
Authentications that can continue: publickey,password

Kemudian minta saya kata sandi. Dari file server / var / log / auth saya memiliki yang berikut terkait dengan proses kunci publik

sshd[28249]: input_userauth_request: try method publickey
sshd[28249]: test whether pkalg/pkblob are acceptable
sshd[28249]: mm_key_allowed entering
sshd[28249]: mm_request_send entering: type 21
sshd[28249]: mm_key_allowed: waiting for MONITOR_ANS_KEYALLOWED
sshd[28249]: mm_request_receive_expect entering: type 22
sshd[28248]: monitor_read: checking request 21
sshd[28249]: mm_request_receive entering
sshd[28248]: mm_answer_keyallowed entering
sshd[28248]: mm_answer_keyallowed: key_from_blob: 0x2b6ea1049910
sshd[28248]: temporarily_use_uid: 10022/10022 (e=0/0)
sshd[28248]: trying public key file /home/myuser/.ssh/authorized_keys
sshd[28248]: secure_filename: checking '/home/myuser/.ssh'
sshd[28248]: secure_filename: checking '/home/myuser'
sshd[28248]: secure_filename: terminating check at '/home/myuser'
sshd[28248]: restore_uid: 0/0
sshd[28248]: key not found
sshd[28248]: temporarily_use_uid: 10022/10022 (e=0/0)
sshd[28248]: trying public key file /home/myuser/.ssh/authorized_keys
sshd[28248]: secure_filename: checking '/home/myuser/.ssh'
sshd[28248]: secure_filename: checking '/home/myuser'
sshd[28248]: secure_filename: terminating check at '/home/myuser '
sshd[28248]: restore_uid: 0/0
sshd[28248]: key not found
sshd[28248]: Normalising mapped IPv4 in IPv6 address
sshd[28248]: Failed publickey for myuser from 87.115.220.187 port 59636 ssh2

Seolah tidak dapat menemukan file yang diotorisasi. Namun perintah nano /home/myuser/.ssh/authorized_keysmembuka file tanpa masalah.

Dari / etc / ssh / sshd_config:

PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

Beberapa orang telah melaporkan bahwa jeda baris dalam file Authorized_key dapat menyebabkan masalah jadi saya sudah memastikan tidak ada (hanya 1 kunci di dalamnya). File dimulai dengan ssh-rsakemudian memiliki kunci panjang dan akhirnya spasi dan M1ke@M1ke-PC.

Ada yang punya ide?

M1ke
sumber
Juga myuserdirektori juga diatur untuk 700. Tidak ingat apakah saya melakukan itu atau sudah seperti itu.
M1ke
Bagaimana dengan kepemilikan file? Apakah myusermemiliki semua dir dan file yang relevan di sisi server?
Steven Monday
1
Dapatkah Anda menambahkan output berikut untuk pertanyaan Anda: ls -ld /home/myuser/.ssh{,/authorized_keys}. Saya menduga bahwa mungkin pengguna tidak memiliki direktori dan file?
Belmin Fernandez
Jalankan sshd dengan debug, lalu catat info yang sangat jelas tentang masalah izin melalui syslog.
jirib
@JiriXichtkniha Di RHEL / CentOS informasi seperti ini masuk /var/log/securetanpa modifikasi konfigurasi.
Kyle Smith

Jawaban:

3

Jika Anda benar-benar melakukan ini cat id_rsa.pub < authorized_keysmaka authorized_keysfile Anda tidak akan berisi kunci publik untuk mencocokkan kunci pribadi yang Anda gunakan sehingga ssh kembali ke otentikasi kata sandi. Menyelesaikan masalah

cat id_rsa.pub >>authorized_keys

untuk menambahkan kunci publik baru ke otor_keys Anda.

Iain
sumber
Um, tidak. cat id_rsa.pub < authorized_keystidak menimpa apa pun. Tapi itu jelas tidak melakukan apa pun yang berguna. Saya menduga pertanyaan hanya memiliki salah ketik, menggantikan <untuk >.
Steven Monday
Kamu benar! tetapi jika op melakukan itu maka berwenang_kunci masih tidak akan memiliki kunci publik yang benar dan akan diminta kata sandi.
user619714
Benar, tetapi kemudian dalam pertanyaan, OP menyebutkan bahwa ia telah memeriksa authorized_keysfile tersebut, dan itu memang mengandung (apa yang ia asumsikan) kunci publiknya.
Steven Monday
Bantu
Aha, sekarang saya yakin saya bisa setuju dengan jawaban Anda. +1.
Steven Monday
0

Apakah SELinux diaktifkan? Jika ya, file memerlukan konteks yang harus ditetapkan.

Shyam Sundar CS
sumber
a) Bagaimana saya mencari tahu apakah itu diaktifkan? b) Jika demikian, bagaimana cara "mengatur konteks"?
M1ke
Tautan di pos memiliki informasi itu. Bagaimanapun, jalankan "sestatus" sebagai root untuk melihat status selinux saat ini. Jika diaktifkan, Anda dapat menonaktifkan selinux sekaligus sebagai tindakan sementara, sampai Anda benar-benar membaca dan memahami tentang mengelola SELinux.
Shyam Sundar CS
Saya mencari SELinux dan menjalankan "sestatus". Ini diatur ke "dinonaktifkan".
M1ke
Apa saja arahan "PubkeyAuthentication" dan "AuthorizedKeysFile" di / etc / ssh / sshd_config?
Shyam Sundar CS
Diedit ke OP.
M1ke