سؤال كيف يمكنك إنشاء مفتاح ssh لمستخدم آخر؟


أحاول إنشاء مفتاح ssh لمستخدم آخر. أنا مسجل الدخول كجذر. هل يمكنني فقط تحرير الملفات التي تم إنشاؤها بواسطة ssh-keygen وتغيير الجذر إلى المستخدم الذي أريده؟


76
2017-10-22 19:24


الأصل


إذا قمت بإنشاء المفتاح للمستخدم ، يجب أن يكون لديك أيضًا طريقة آمنة للحصول على المفتاح الخاص وعبارة المرور للمستخدم. من الأفضل بكثير أن يولد المستخدم المفتاح ثم يرسل لك المفتاح العام بالبريد الإلكتروني. - Iain
ولكن أليس هذا صعبًا هو أنك لا تسمح بتسجيل الدخول باستخدام كلمة المرور؟ إذا كنت مفتاحًا فقط ، وأعددت مستخدمًا جديدًا ، فلا يمكنهم تسجيل الدخول لإعداد مفتاحهم. - LVLAaron


الأجوبة:


هل يمكن أن تفعل ذلك مع ssh-keygenومع ذلك ، تذكر أن المفتاح الخاص يُقصد به أن يكون خاصًا للمستخدم ، لذا يجب أن تكون حريصًا جدًا على الاحتفاظ به في أمان باعتباره كلمة مرور المستخدم. أو حتى أكثر أمانًا ، نظرًا لأنه من غير المحتمل أن يطلب من المستخدم تغييره عند تسجيل الدخول لأول مرة.

ssh-keygen -f anything يخلق ملفين في الدليل الحالي. anything.pub هو المفتاح العمومي ، والذي يمكنك إلحاقه بالمستخدم ~/.ssh/authorized_keys على أي خادم وجهة.

الملف الآخر ، ودعا للتو anything هو المفتاح الخاص ولذلك يجب تخزينه بأمان للمستخدم. الموقع الافتراضي سيكون ~username/.ssh/id_rsa (هنا اسمه id_rsa، وهو الافتراضي لمفاتيح rsa). تذكر أن .ssh الدليل لا يمكن قراءته أو كتابته من قبل أي شخص سوى المستخدم ، ولا يمكن للكتاب الرئيسي للمستخدم أن يقوم بالكتابة من قبل أي شخص سوى المستخدم. وبالمثل ، يجب أن تكون الأذونات ضيقة على المفتاح الخاص أيضًا: القراءة / الكتابة للمستخدم فقط ، ويجب أن يمتلك الدليل .sh و keyfile الخاص من قبل المستخدم.

من الناحية الفنية يمكنك تخزين المفتاح في أي مكان. مع ssh -i path/to/privatekey يمكنك تحديد هذا الموقع ، أثناء الاتصال. مرة أخرى ، الملكية والأذونات الصحيحة حاسمة ولن تعمل ssh إذا لم يكن لديك الحق في ذلك.


74
2017-10-22 19:35



+1 للتعبير عن أنه مفتاح خاص (!) - mailq
أنت على افتراض أن المستخدم هو شخص حقيقي. إذا كان تسجيل الدخول مستخدمًا غير تفاعلي يتم استخدامه لتنفيذ مهام الأداة المساعدة (على سبيل المثال تشغيل نصوص برمجية رئيسية على خوادم بعيدة) ، فحينئذٍ نعم ، من المحتمل أنك ستقوم بإنشاء المفتاح لهذا المستخدم يدويًا. بالطبع ، هذا له تداعيات أمنية خاصة به ، لكن هذه قصة أخرى. - Rilindo
Rilindo ssh -i إلى مفتاح خاص لعملية غير امتياز هو كيفية التعامل مع أكثر من بضع عمليات النسخ الاحتياطي التلقائي rsync. :) - Shadur
لا أحب هذا النوع من الإجابة التي تقول "يجب ألا تفعل ذلك" ولكن لا تجيب على السؤال. في حين أن هذا قد يكون صحيحًا ومفيدًا لسياق السؤال الأصلي ، فقد يكون لدى الأشخاص الآخرين نفس السؤال في موقف مختلف. "لا يجب أبداً إنشاء مفاتيح ssh لمستخدم آخر": هذا صحيح في الحالة البسيطة. لكن فكر في هويات متعددة لنفس الشخص الطبيعي ، على سبيل المثال. قد تكون هناك حسابات متعددة على أنظمة متعددة ، وليس جميعها تسمح لك بإنشاء مفاتيح أو السماح بحماية المفاتيح الخاصة بشكلٍ فوري. - Gustave
usersأو user's - User


هناك لا معلومات المستخدم في مفاتيح SSH.

الحقل الأخير في المفتاح العام هو تعليق (ويمكن تغييرها عن طريق تشغيل الأمر التالي ssh-keygen -C newcomment).

لا حاجة للقيام بأي شيء خاص لجعل مفتاح مستخدم آخر ، فقط ضعه في الموقع الصحيح وقم بتعيين الأذونات.


109
2017-10-22 19:55



هذا هو الجواب الصحيح. - sebnukem
أنا مجرد اختبار وتأكيد ، ليس فقط هو مجرد تعليق ، ولكن يمكن إزالته ومفاتيح لا تزال تعمل. اعتقدت دائما أنه يهم! شكرا لتقديم الجواب الصحيح. مثل التعليقات أعلاه ، لدي سبب لإنشاء مفاتيح للمستخدمين الآخرين ، لكنني لن أقول لماذا ، لذلك لا يوجد حجة. - FreeSoftwareServers


أصبح مستخدما باستخدام سو وقم بتشغيل المفتاح باسم هذا المستخدم:

[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



لماذا حدد DSA؟ - Ram
يصيح ، قوة العادة. اسمحوا لي أن التحديث. - Rilindo
يجب أن تستخدم rsa (أو possiblly أحد المتغيرات المنحنى eliptic). DSA يقتصر على مفاتيح غير آمنة. rsa1 عبارة عن تنسيق قديم لـ ssh1 والذي يجب ألا يستخدمه أحد بعد الآن. - Peter Green
لي joeuser هو مستخدم خدمة ، لذلك لا يمكنني تسجيل الدخول مثلهم. كيف أسمح لمستخدم الخدمة (الذي يقوم بتشغيل العمليات فقط) بالحصول على مفتاح ssh؟ - Jonathan
JonathanLeaders يمكنك تحديد shell للمستخدم عندما يصبح ذلك المستخدم. شيء من هذا القبيل: `` `[root @ ip-10-254-41-211 ~] # ftp ftp / etc / passwd ftp: x: 14: 50: مستخدم FTP: / var / ftp: / sbin / nologin [root @ ip-10-254-41-211 ~] # su - ftp su: تحذير: لا يمكن تغيير الدليل إلى / var / ftp: لا يوجد ملف أو دليل هذا الحساب غير متوفر حاليًا. [root @ ip-10-254-41-211 ~] # su -s / bin / bash ftp bash-4.2 $ whoami ftp bash-4.2 $ `` ` - Rilindo


كما تبدو هنايمكنك استخدام chmod لتغيير أذونات القراءة لمجلد المستخدم الذي تريد إضافة مفتاح SSH إليه.

vim /home/username/.ssh/authorized_keys

بعد ذلك ، ما عليك سوى لصق المفتاح إلى سطر جديد أسفل هذا الملف


5
2018-01-09 23:42



الرابط ميت ... - Nyxynyx