كيف يمكنك استخدام ssh في برنامج نصي شل؟
سؤال
عندما أحاول استخدام سش الأمر في برنامج شل النصي، الأمر موجود هناك.هل لديك مثال لكيفية الاستخدام سش في البرنامج النصي شل؟
المحلول
يعتمد على ما تريد القيام به وكيفية استخدامه.إذا كنت تريد فقط تنفيذ أمر عن بعد وبأمان على جهاز آخر، فما عليك سوى استخدام
ssh user@host command
على سبيل المثال
ssh user@host ls
وللقيام بذلك بأمان، يتعين عليك إما أن تطلب من المستخدم كلمة المرور أثناء وقت التشغيل، أو إعداد المفاتيح على المضيف البعيد.
نصائح أخرى
أولاً، عليك التأكد من أنك قمت بإعداد كلمة مرور أقل (تسجيل الدخول بالمفتاح العام).يوجد على الأقل نوعان من ملفات ssh مع تنسيقات ملفات تكوين مختلفة قليلاً.افحص ال سش manpage على نظامك، قم باستشارة مسؤول النظام المحلي لديك أو توجه إلى كيف أقوم بإعداد مصادقة المفتاح العام؟.
يهرب سش في الوضع الدفعي (كما هو الحال في برنامج شل النصي)، تحتاج إلى تمرير الأمر الذي تريد تشغيله.بناء الجملة هو:
ssh host command
إذا كنت تريد تشغيل أكثر من أمر واحد في نفس الوقت، فاستخدم علامات الاقتباس والفواصل المنقوطة:
ssh host "command1; command2"
علامات الاقتباس ضرورية لحماية الفواصل المنقوطة من مترجم الصدفة.إذا تركتهم، فسيتم تشغيل الأمر الأول فقط عن بعد وسيتم تشغيل كل الباقي على الجهاز المحلي.
يمكنك استخدام expect
أمر لملء معلومات اسم المستخدم/كلمة المرور.
تحتاج إلى وضع مفتاح SSH العام الخاص بك في ملف ~/.ssh/authorized_keys
ملف على المضيف البعيد.بعد ذلك ستتمكن من إرسال SSH إلى ذلك المضيف بدون كلمة مرور.
بدلا من ذلك يمكنك استخدام ssh-agent
.أوصي بعدم تخزين كلمة المرور في البرنامج النصي.
أسهل طريقة هي استخدام شهادة للمستخدم الذي يقوم بتشغيل البرنامج النصي.
يتضمن الأمر الأكثر تعقيدًا إضافة كلمة المرور إلى stdin عندما يطلبها أمر shell.توقع أن تعرض مكتبات Perl للمستخدم مطالبة تطلب كلمة المرور (إذا كانت تفاعلية، على الأقل)، فهناك الكثير من الخيارات.