سؤال

عندما أحاول استخدام سش الأمر في برنامج شل النصي، الأمر موجود هناك.هل لديك مثال لكيفية الاستخدام سش في البرنامج النصي شل؟

هل كانت مفيدة؟

المحلول

يعتمد على ما تريد القيام به وكيفية استخدامه.إذا كنت تريد فقط تنفيذ أمر عن بعد وبأمان على جهاز آخر، فما عليك سوى استخدام

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 للمستخدم مطالبة تطلب كلمة المرور (إذا كانت تفاعلية، على الأقل)، فهناك الكثير من الخيارات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top