Pertanyaan Izin pada kunci pribadi di folder .ssh?


Saya mengubah izin saya di .ssh folder dan sekarang ketika saya menggunakan perangkat lunak yang menggunakan kunci pribadi saya, saya harus mengetikkan kata sandi saya setiap kali. Apa yang harus izin saya di saya id_rsa file untuk tidak perlu mengetikkan kata sandi setiap kali saya menggunakan aplikasi yang menggunakannya?

Saat ini izin saya disetel ke:

-rw-------@ 1 Jody  staff   114 Nov  4 23:29 config
-rw-------  1 Jody  staff  1743 Oct 21  2009 id_rsa
-rw-------@ 1 Jody  staff   397 Oct 21  2009 id_rsa.pub 
-rw-------@ 1 Jody  staff  3855 Sep 13 22:35 known_hosts

277
2017-11-26 22:04


asal




Jawaban:


Biasanya Anda menginginkan .ssh izin direktori untuk menjadi 700 (drwx------) dan kunci publik (.pub file) menjadi 644 (-rw-r--r--). Kunci pribadi Anda (id_rsa) seharusnya 600 (-rw-------). Terakhir, direktori home Anda tidak dapat ditulisi oleh grup atau orang lain (paling banyak 755 (drwxr-xr-x)).

Saya berasumsi bahwa Anda berarti bahwa Anda harus memasukkan kata sandi sistem / pengguna Anda setiap kali, dan yang sebelumnya Anda tidak perlu melakukannya. Tanggapan cdhowie adalah mengasumsikan Anda menetapkan kata sandi / passphrase saat membuat kunci Anda, dan jika Anda melakukannya maka seperti yang ia katakan Anda harus memasukkan kata sandi Anda setiap kali kecuali jika Anda menggunakan agen ssh.


481
2017-11-26 22:24



Saya menemukan di tempat lain bahwa jika menggunakan file authorized_keys, itu harus chmod'd ke 640, yaitu -rw-r -----. - AnneTheAgile
Di mana saya dapat menemukan info ini di halaman manual? - Sonique
Saya telah kembali ke pos ini sekitar 30 kali sekarang. Saya tidak percaya saya tidak bisa mengingatnya. - JREAM
Satu-satunya hal yang penting adalah bahwa tidak ada yang bisa di-edit oleh orang lain dan tidak ada kunci rahasia yang dapat dibaca oleh orang lain. - Markus Kuhn
@Cerin mengeksekusi izin pada direktori memberikan kemampuan untuk membuat daftar file / direktori anak langsung dari direktori tersebut, file di dalam folder tidak "mewarisi" bit eksekusi folder induknya. - Thomas


Saya berjuang dengan ini selamanya dan akhirnya menemukan apa yang dibutuhkan. Menggantikan $USER di mana saja dengan nama pengguna SSH yang ingin Anda masuki di server. Jika Anda mencoba masuk sebagai root Anda perlu menggunakan /root/.ssh dll, bukan /home/root/.ssh yang bagaimana bagi pengguna non-root.

  • Direktori home di server tidak boleh ditulis oleh orang lain: chmod go-w /home/$USER
  • Folder SSH di server membutuhkan 700 izin: chmod 700 /home/$USER/.ssh
  • File authorized_keys membutuhkan 644 izin: chmod 644 /home/$USER/.ssh/authorized_keys
  • Pastikan bahwa user memiliki file / folder dan tidak root: chown user:user authorized_keys dan chown user:user /home/$USER/.ssh
  • Masukkan kunci publik yang dihasilkan (dari ssh-keygen) di pengguna authorized_keys file di server
  • Pastikan bahwa direktori home pengguna diatur ke apa yang Anda harapkan dan berisi yang benar .ssh folder yang telah Anda modifikasi. Jika tidak, gunakan usermod -d /home/$USER $USER untuk memperbaiki masalah ini
  • Akhirnya, restart ssh: service ssh restart
  • Kemudian pastikan klien memiliki kunci publik dan file kunci pribadi di pengguna lokal .ssh folder dan login: ssh user@host.com

62
2018-06-09 20:39



Mengenai paragraf pertama Anda, saya dapat ssh dengan kunci publik / pribadi dengan pengguna di kotak linux lokal saya (mis. abc), berbeda dari pengguna di server jarak jauh (mis. def@123.456.789). Saya hanya harus memastikan bahwa pengguna lokal memiliki file .ssh lokal (mis. abc:abctidak root:abc) ` - Michael
Terima kasih telah meletakan semua langkah dan perintah untuk pemula, Alex. Hormat Anda adalah salah satu jawaban yang paling membantu di sini. - Nav
+1. "File authorized_keys memerlukan 644 izin" <= yang sangat penting! - Le Quoc Viet
Jika Anda memberikan direktori .ssh 700 mode, maka ada Tidak ada manfaat dalam memberikan r-- ke grup dan lainnya, karena hanya kamu dapat "masuk" .ssh lalu (dengan asumsi tidak ada tautan keras untuk file ini). Hal yang sama untuk jawaban yang diterima. Default 755 sudah cukup. - user3125367


Juga pastikan bahwa direktori home Anda tidak dapat ditulisi oleh pengguna lain.

chmod g-w,o-w ~


31
2018-01-03 03:50



FYI, perintah ini menganggap Anda login sebagai pengguna dan bukan root - Alex W


Izin seharusnya tidak ada hubungannya dengan ini. Kunci pribadi Anda dienkripsi dengan kata sandi, jadi Anda harus memasukkannya agar kunci privat didekripsi dan dapat digunakan.

Anda mungkin mempertimbangkan untuk menjalankan agen ssh, yang dapat meng-cache kunci yang didekripsi dan akan memasoknya ke aplikasi yang membutuhkannya.


4
2017-11-26 22:07



Terima kasih atas info tambahan tentang agen ssh. Sepertinya ada yang dibangun di Leopard jadi saya pikir saya akan melakukannya. Memiliki sedikit masalah dengan itu tetapi saya akan mengajukan pertanyaan lain.
Jangan meremehkan izin. Mereka pasti masih ikut bermain. - Alex W
@AlexW Mereka benar-benar bermain dengan aspek lain dari ssh, tetapi bukan yang ditanyakan dalam pertanyaan. - cdhowie
Jika Anda tidak memiliki kata sandi pada kunci pribadi (cambuk skrip yang disebut remote otomatis), itu tidak akan membantu Anda. Izin diperlukan di sini. - nerdoc


Felipe benar - direktori yang berisi direktori .ssh Anda tidak boleh dapat ditulisi oleh grup atau lainnya. Demikian chmod go-w ~ adalah hal logis berikutnya untuk dicoba jika Anda masih diminta kata sandi ketika ssh'ing setelah dijalankan ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys, dengan asumsi Anda tidak memberikan passphrase dalam perintah ssh-keygen, dan direktori .ssh Anda ada di direktori home Anda.


4
2018-04-17 20:20