ssh-copy-id - izin ditolak (publickey) [ditutup]

30

Saya ingin mengatur ssh tunnel ke server mysql yang ada di komputer yang memiliki mesin virtual. Terowongan juga harus berfungsi jika mesin dihidupkan ulang.

Jadi katakanlah A adalah komputer dengan perangkat lunak linux. B - mesin virtual di komputer A.

MySQL ada di B.

C - adalah mesin virtual di komputer A yang ingin terhubung ke MySQL di B.

Sekarang dengan artikel ini: http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/

Saya mencoba menyalin kunci publik ke server jauh. Saya kira saya perlu menyalinnya ke komputer A.

ssh-copy-id -i id_rsa.pub.bak [user]@[IP of A] -p [port of A]
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Sekarang saya mencoba memasukkan passphrase dari file id_rsa.pub.bak. Itu ditolak.

Kemudian saya melihat bahwa ia menggunakan kunci di /home/[user[/.ssh/id_rsa yang berbeda dari kunci publik yang saya coba salin, maksud saya tentu saja kunci pribadi berbeda, tapi maksud saya, saya menyalin kunci publik yang lain kunci pribadi. Jadi saya mencoba menggunakan frasa sandi itu. Juga ditolak.

Bagaimana saya bisa men-debug mengapa frasa sandi ditolak?

Memperbarui

Berdasarkan komentar saya membuat file publik baru bernama id_rsa.pub di mana semuanya berada dalam satu baris sekarang

dan jalankan dan masih mendapatkan error.

ssh-copy-id -i id_rsa.pub [host and port] -vvv
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Memperbarui

Memeriksa izin pada folder .ssh dan file Authorized_key di komputer A - mereka 700 dan 600 sehingga komentar mengatakan mereka baik.

Memperbarui

Mencoba mengatur otentikasi kata sandi ya di komputer dan untuk memulai kembali layanan. Restart karena jawaban tidak berfungsi, itu menulis sshd tidak dikenali, jadi saya memulai kembali menggunakan:

sudo /etc/init.d/ssh restart

Kemudian coba lagi pada mesin C untuk menyalin ke mesin A.

ssh-copy-id -i id_rsa.pub [user@host] -p [port] -v

dan masih sama:

Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Jika saya pergi menyalin kunci secara manual ke otor_keys, saya melihat bahwa kunci publik sudah ada, yang sama yang ingin saya salin. Saya bertanya kepada rekan kerja saya, dia bilang dia tidak menyalinnya. Jadi saya bahkan tidak mengerti bagaimana itu bisa ada di sana.

Ok, jika ada, itu akan baik, tetapi dengan tetap di sana tidak membiarkan saya terhubung dengan ssh tanpa memasukkan frasa sandi. Tapi saya bisa terhubung dengan memasukkan frasa sandi. Jadi ada sesuatu yang jelas salah di sini. Dan kunci yang saya coba salin adalah dengan frasa sandi kosong. Ketika saya terhubung dengan ssh - saya memasukkan frasa sandi yang tidak kosong.

Kunci publik yang sama tidak dapat menerima frasa sandi kosong dan dan frasa sandi tidak kosong, itu masuk akal. Tapi mengapa kunci publik yang saya coba unggah sama dengan yang ada di file Authorized_key jika frasa sandi berbeda? Saya tidak memeriksa setiap karakter, tetapi tidak mungkin bahwa kunci akan sangat mirip sehingga permulaan dan akhir akan sama bahkan ketika frasa sandi berbeda saya pikir.

Darius.V
sumber
File mana yang dimulai dengan id_rsayang Anda miliki? Saya berharap ssh-copy-iduntuk gagal dengan pesan kesalahan seperti yang Anda sebut, karena mengharapkan file berakhir dengan .pub. Karena milik Anda berakhir dengan .bakitu mungkin akan digunakan id_rsa.pub.bak.pub.
nlu
@ nlu - Saya punya id_rsa yang saya salin dengan menyeret dan menjatuhkan file menggunakan notepad ftp explorer. Juga memiliki id_rsa.bak yang saya buat dengan nano dan menempelkan konten dengan mouse dari notepad ++ tetapi tampaknya itu membuat teks yang sama tetapi entah bagaimana 2 kolom. Dan saya juga punya id_rsa.pub.bak yang juga dibuat dengan nano. Sebenarnya memiliki 3 baris, tetapi asli memiliki semua dalam satu baris. Tidak tahu bedanya. Tapi seperti yang kita lihat, saya tidak mendapatkan pesan kesalahan tentang nama file.
Darius.V
1
Itu benar. Lihat di sini sebagai contoh: snailbook.com/faq/publickey-userauth.auto.html ("Jika Anda menggunakan editor teks, berhati-hatilah agar tidak melanggar garis dalam file ini.").
nlu
Pertanyaan ditutup karena mereka pikir itu bukan sistem dalam lingkungan bisnis, tetapi saya sedang memecahkan masalah lingkungan bisnis.
Darius.V

Jawaban:

25

Anda sebenarnya harus masuk untuk menyalin kunci Anda, Anda tidak memiliki akses ke mesin jarak jauh (kunci tidak valid dan otentikasi kata sandi dinonaktifkan):

Aktifkan kembali otentikasi passwd di / etc / ssh / sshd_config:

PasswordAuthentication yes

Kemudian mulai kembali layanan:

service sshd restart

Salin kunci publik Anda:

ssh-copy-id -i ~/.ssh/id_rsa.pub USER@HOST -p PORT
[Enter user password]

Coba masuk lagi, tidak perlu kata sandi.

Kemudian nonaktifkan otentikasi kata sandi.

Nabil Bourenane
sumber
Bagaimana jika saya mengatur PasswordAuth ke yes di server yang ingin saya masuki, dan saya dapat terhubung dengan dempul menggunakan kata sandi, tetapi ssh-copy-id masih tidak meminta kata sandi dan hanya menulis Izin ditolak (publickey). ?
Darius.V
hei saya ingin mengucapkan terima kasih !!! kamu menyelamatkan hariku !!! Terima kasih banyak!!!
尤川豪
Berkat @Nabil, ini berfungsi pada Ubuntu 18.04 juga. Hanya sebuah peringatan untuk pembaca masa depan: Edit / etc / ssh / sshd_config sesuai instruksi dan BUKAN ssh_config, dengan pengawasan (seperti yang saya lakukan!). Juga, ssh-copy-id USER @ HOST jelas cukup.
Snidhi Sofpro
12

Permission denied (publickey) adalah server SSH jarak jauh yang mengatakan "Saya hanya menerima kunci publik sebagai metode otentikasi, pergilah".

Itulah tantangan utama Anda: Masuk ke sistem jarak jauh. Setelah melakukannya, Anda dapat mengunggah kunci Anda:

  • Menggunakan ssh-copy-id- ini akan memungkinkan Anda untuk menentukan kunci yang berbeda jika Anda sedang dalam proses mengganti yang lama, misalnya.
  • Edit pengguna jarak jauh ~/.ssh/authorized_keysuntuk menambahkan kunci Anda secara manual.
Oli
sumber
5

Akhirnya menemukan masalah.

Sebenarnya saya tidak perlu menyalin kunci publik. Kunci publik yang sama adalah untuk kedua kunci pribadi - dengan frasa sandi dan tanpa frasa sandi. Saya pikir saya memiliki kunci pribadi tanpa frasa sandi, tetapi sebenarnya saya tidak melakukannya. Saya hanya punya .ppk tanpa frasa sandi. Itu adalah komunikasi yang hilang. Jadi rekan kerja membuat kunci pribadi tanpa frasa sandi dan jadi sekarang saya bisa masuk menggunakan ssh tanpa frasa sandi. Saya membaca bahwa memiliki tanpa frasa sandi itu buruk, tetapi rekan kerja mengatakan itu tidak apa-apa. Saya perlu tanpa frasa sandi karena saya perlu menjalankan skrip shell saat reboot - Saya ingin memulai autossh di reboot komputer.

Jadi jenis solusinya kali ini - jika Anda ingin masuk tanpa frasa sandi - periksa apakah kunci pribadi Anda tanpa frasa sandi sebenarnya.

Darius.V
sumber