GNU/Linux >> Belajar Linux >  >> Linux

Mengapa saya mendapatkan Izin ditolak (publickey) saat mencoba SSH dari Ubuntu lokal ke server Amazon EC2?

Solusi 1:

Hal pertama yang harus dilakukan dalam situasi ini adalah menggunakan -v opsi untuk ssh , sehingga Anda dapat melihat jenis autentikasi apa yang dicoba dan hasilnya. Apakah itu membantu mencerahkan situasi?

Dalam pembaruan Anda untuk pertanyaan Anda, Anda menyebutkan "di Ubuntu lokal lain". Sudahkah Anda menyalin kunci pribadi ssh ke komputer lain?

Solusi 2:

Karena belum disebutkan secara eksplisit, sshd secara default sangat ketat pada izin untuk authorized_keys file. Jadi, jika authorized_keys dapat ditulis untuk siapa pun selain pengguna atau dapat dibuat dapat ditulisi oleh siapa pun selain pengguna, itu akan menolak untuk mengotentikasi (kecuali jika sshd dikonfigurasi dengan StrictModes no )

Yang saya maksud dengan "dapat dibuat dapat ditulisi" adalah bahwa jika salah satu direktori induk dapat ditulisi untuk siapa pun selain pengguna, pengguna yang diizinkan untuk memodifikasi direktori tersebut dapat mulai mengubah izin sedemikian rupa sehingga mereka dapat memodifikasi/mengganti kunci_otorisasi.

Selanjutnya jika /home/username/.ssh direktori tidak dimiliki oleh pengguna, sehingga pengguna tidak memiliki izin untuk membaca kunci yang dapat Anda alami masalah:

drwxr-xr-x 7 jane jane 4096 Jan 22 02:10 /home/jane
drwx------ 2 root root 4096 Jan 22 03:28 /home/jane/.ssh

Perhatikan bahwa jane tidak memiliki .ssh mengajukan. Perbaiki ini melalui

chown -R jane:jane /home/jane/.ssh

Masalah izin sistem file semacam ini tidak akan muncul dengan ssh -v , dan mereka bahkan tidak akan muncul di log sshd (!) sampai Anda menyetel level log ke DEBUG.

  • Edit /etc/ssh/sshd_config . Anda menginginkan baris yang bertuliskan LogLevel DEBUG di sana di suatu tempat. Muat ulang server SSH menggunakan mekanisme yang disediakan oleh distro. (service sshd reload di RHEL/CentOS/Scientific.) Muat ulang yang lancar tidak akan membatalkan sesi yang ada.
  • Coba mengautentikasi lagi.
  • Cari tahu ke mana log fasilitas autentikasi Anda pergi dan bacalah. (IIRC, /var/log/auth.log pada distro berbasis Debian; /var/log/secure di RHEL/CentOS/Ilmiah.)

Jauh lebih mudah untuk mencari tahu apa yang salah dengan output debug yang menyertakan kesalahan izin sistem file. Ingatlah untuk mengembalikan perubahan ke /etc/ssh/sshd_config setelah selesai!

Solusi 3:

Saya menerima kesalahan ini, karena saya lupa menambahkan -l pilihan. Nama pengguna lokal saya tidak sama dengan di sistem jarak jauh.

Ini tidak menjawab pertanyaan Anda, tetapi saya datang ke sini untuk mencari jawaban atas masalah saya.

Solusi 4:

Saya mendapat pesan ini pada contoh baru berdasarkan Ubuntu AMI. Saya menggunakan opsi -i untuk menyediakan PEM tetapi masih menampilkan "Izin ditolak (publickey)".

Masalah saya adalah saya tidak menggunakan pengguna yang benar. Dengan menjalankan ssh dengan [email protected] berfungsi seperti biasa.

Solusi 5:

Sesuatu yang lebih mudah dibaca daripada ssh -v (menurut saya tentunya), adalah tail -f /var/log/auth.log . Itu harus dijalankan di server yang Anda coba sambungkan, saat mencoba menyambung. Ini akan menampilkan kesalahan dalam teks biasa.

Ini membantu saya menyelesaikan masalah saya:

Pengguna [nama pengguna] dari xx.yy.com tidak diizinkan karena tidak ada grup pengguna yang terdaftar di AllowGroups


Linux
  1. Perbaiki Izin ditolak (publickey) Kesalahan SSH di Linux

  2. Kesalahan "530:izin ditolak" saat pengguna masuk ke server vsftpd melalui ftp

  3. Bagaimana cara menyalin seluruh folder dari instance Linux Amazon EC2 ke mesin Linux lokal?

  1. Izin AWS Lambda ditolak saat mencoba menggunakan ffmpeg

  2. Mengapa login SSH saya lambat?

  3. Izin SSH ditolak (publickey,gssapi-keyex,gssapi-with-mic) | pengguna non-root

  1. Cara SSH di Linux dari Android

  2. Amazon Linux vs. Ubuntu untuk Amazon EC2

  3. Bagaimana cara mengizinkan ssh untuk me-root pengguna hanya dari jaringan lokal?