Pertanyaan bagaimana Anda membuat kunci ssh untuk pengguna lain?


Saya mencoba membuat kunci ssh untuk pengguna lain. Saya login sebagai root. Bisakah saya mengedit file yang dihasilkan oleh ssh-keygen dan mengubah root ke pengguna yang saya inginkan?


76
2017-10-22 19:24




Jika Anda menghasilkan kunci untuk pengguna, Anda juga harus memiliki metode aman untuk mendapatkan kunci pribadi dan itu memberikan frasa kepada pengguna. Jauh lebih baik pengguna menghasilkan kunci dan kemudian hanya mengirim email kepada Anda kunci publik. - Iain
Tetapi bukankah itu sulit Anda tidak mengizinkan login kata sandi? Jika saya hanya kunci, dan saya membuat pengguna baru, mereka tidak dapat masuk untuk menyiapkan kunci mereka. - LVLAaron


Jawaban:


Anda bisa melakukannya dengan ssh-keygenNamun, ingat bahwa kunci pribadi dimaksudkan untuk menjadi pribadi bagi pengguna sehingga Anda harus sangat berhati-hati untuk membuatnya aman - seaman kata sandi pengguna. Atau bahkan lebih aman, karena pengguna tidak mungkin diminta untuk mengubahnya saat pertama kali masuk.

ssh-keygen -f anything membuat dua file di direktori saat ini. anything.pub adalah kunci publik, yang dapat Anda tambahkan ke pengguna ~/.ssh/authorized_keys di server tujuan apa pun.

File lain, baru dipanggil anything adalah kunci privat dan oleh karena itu harus disimpan dengan aman bagi pengguna. Lokasi default akan menjadi ~username/.ssh/id_rsa (disini dinamakan id_rsa, yang default untuk kunci rsa). Ingat bahwa .ssh direktori tidak dapat dibaca atau ditulisi oleh siapa pun kecuali pengguna, dan direktori home pengguna tidak dapat ditulisi oleh siapa pun kecuali pengguna. Demikian juga, perizinan harus ketat pada kunci pribadi, juga: Baca / tulis hanya untuk pengguna, dan direktori .ssh dan kunci pribadi harus dimiliki oleh pengguna.

Secara teknis Anda bisa menyimpan kunci di mana saja. Dengan ssh -i path/to/privatekey Anda dapat menentukan lokasi itu, saat menghubungkan. Sekali lagi, kepemilikan dan izin yang tepat sangat penting dan ssh tidak akan berfungsi jika Anda tidak memilikinya dengan benar.


74
2017-10-22 19:35



+1 untuk menyatakan bahwa itu adalah kunci pribadi (!) - mailq
Anda mengasumsikan bahwa pengguna adalah orang yang nyata. Jika proses masuk adalah pengguna non-interaktif yang digunakan untuk melakukan tugas utilitas (mis. Menjalankan skrip utama pada server jarak jauh), maka ya, Anda mungkin akan membuat kunci untuk pengguna itu secara manual. Tentu saja, itu memiliki implikasi keamanannya sendiri, tapi itu cerita lain. - Rilindo
@Rilindo ssh -i kunci privat untuk proses yang tidak diistimewakan adalah bagaimana saya menangani lebih dari beberapa proses backup rsync otomatis. :) - Shadur
Saya tidak suka jawaban semacam itu yang mengatakan "Anda seharusnya tidak melakukan itu" tetapi tidak menjawab pertanyaan itu. Meskipun ini mungkin benar dan bermanfaat untuk konteks pertanyaan asli, orang lain mungkin memiliki pertanyaan yang sama dalam situasi yang berbeda. "Kunci ssh tidak boleh dihasilkan untuk pengguna lain": Itu benar dalam kasus sederhana. Tetapi pertimbangkan beberapa identitas dari orang fisik yang sama, misalnya. Mungkin ada beberapa akun di beberapa sistem, tidak semuanya memungkinkan Anda untuk menghasilkan kunci atau memungkinkan untuk melindungi kunci privat secara tepat. - Gustave
usersatau user's - User


Ada tidak ada informasi pengguna di kunci SSH.

Bidang terakhir dalam kunci publik adalah a komentar (dan dapat diubah dengan menjalankan perintah berikut ssh-keygen -C newcomment).

Tidak perlu melakukan sesuatu yang istimewa untuk membuat kunci untuk pengguna lain, cukup letakkan di lokasi yang tepat dan atur izin.


108
2017-10-22 19:55



Itu jawaban yang benar. - sebnukem
Saya hanya menguji dan menegaskan, bukan hanya komentar, tetapi dapat dihapus dan kunci masih berfungsi. Saya selalu berpikir itu penting! Terima kasih telah memberikan jawaban yang benar. Seperti komentar di atas, saya punya alasan untuk membuat kunci untuk pengguna lain, tetapi saya tidak akan mengatakan mengapa, jadi tidak ada argumen. - FreeSoftwareServers


Menjadi pengguna dengan menggunakan su dan jalankan kunci sebagai pengguna itu:

[root@kvm0001 ~]# su - joeuser
[joeuser@kvm0001 ~]$ ssh-keygen -t dsa (or rsa1 or rsa, depending on your security requirements)
Generating public/private dsa key pair.
Enter file in which to save the key (/home/joeuser/.ssh/id_dsa):

16
2017-10-22 19:35



Mengapa menentukan DSA? - Ram
Ups, kekuatan kebiasaan. Biarkan saya memperbarui. - Rilindo
Anda harus menggunakan rsa (atau mungkin salah satu varian kurva eliptik). dsa terbatas pada keysizes yang tidak aman. rsa1 adalah format warisan untuk ssh1 yang tidak boleh digunakan lagi oleh siapa pun. - Peter Green
Saya joeuser adalah pengguna layanan, oleh karena itu saya tidak dapat masuk sebagai mereka. Bagaimana cara saya mengizinkan pengguna layanan (yang hanya menjalankan proses) untuk memiliki kunci ssh? - Jonathan
@JonathanLeaders Anda akan menentukan shell untuk pengguna saat menjadi pengguna itu. Sesuatu seperti ini: `` `[root @ ip-10-254-41-211 ~] # grep ftp / etc / passwd ftp: x: 14: 50: FTP Pengguna: / var / ftp: / sbin / nologin [root @ ip-10-254-41-211 ~] # su - ftp su: peringatan: tidak dapat mengubah direktori ke / var / ftp: Tidak ada file atau direktori tersebut Akun ini saat ini tidak tersedia. [root @ ip-10-254-41-211 ~] # su -s / bin / bash ftp bash-4.2 $ whoami ftp bash-4.2 $ `` ` - Rilindo


Seperti yang terlihat sini, Anda dapat menggunakan chmod untuk mengubah izin baca dari folder pengguna yang ingin Anda tambahkan kunci SSH.

vim /home/username/.ssh/authorized_keys

Kemudian, cukup tempelkan kunci ke baris baru di bagian bawah file itu


5
2018-01-09 23:42



Tautan mati ... - Nyxynyx