SSH عن بعد: نصائح وحيل

في منشور سابق لـ Remote SSH ، تابعنا كيفية إعداد جهاز Linux افتراضي والاتصال بجهاز VM باستخدام امتداد Remote - SSH في Visual Studio Code. في منشور المدونة هذا ، سنبحث في بعض النصائح والحيل التي يمكنك استخدامها لتحقيق أقصى استفادة من الإعداد عن بُعد.



الاتصال باستخدام SSH عن بعد


يسمح لك ملحق Visual Studio Code Remote - SSH بالاتصال بجهاز بعيد أو VM باستخدام SSH ، كل ذلك من داخل VS Code. إذا لم يكن لديك الامتداد مثبتًا بالفعل ، فيمكنك البحث عن "ssh عن بعد" في عرض الإضافات (⇧⌘X).



بعد تثبيت الامتداد ، ستلاحظ وجود مؤشر في الركن الأيمن السفلي من شريط الحالة. يخبرك هذا المؤشر في أي سياق يعمل كود VS (محلي أو بعيد). انقر فوق المؤشر لإظهار قائمة بأوامر الامتداد عن بُعد.



ملف التكوين SSH


في نشر مدونة Remote SSH السابقة ، وصلنا فقط بجهاز واحد وقمنا بذلك عن طريق إدخال "user @ host" عند المطالبة. إذا قمت بتسجيل الدخول إلى عدة خوادم بعيدة أو أجهزة افتراضية محلية بشكل منتظم ، فهناك طريقة أفضل للاتصال دون الحاجة إلى تذكر جميع أسماء المستخدمين والعناوين وخيارات التكوين الإضافية.

يدعم OpenSSH استخدام ملف التكوين لتخزين جميع اتصالات SSH المختلفة. لاستخدام ملف تكوين SSH ، انقر فوق المؤشر البعيد لإظهار الأوامر عن بُعد ، واختر فتح ملف التكوين ، وحدد الملف الذي يتبع المسار "Users / {yourusername} /. Ssh / config".



فيما يلي مثال لملف تهيئة SSH:

# Read more about SSH config files: https://linux.die.net/man/5/ssh_config Host python-linux-vm HostName <vm address> User sana IdentityFile ~/.ssh/id_python_vm Host node-vm HostName <vm address> User sana Port 5522 IdentityFile ~/.ssh/id_node_vm 

هناك العديد من خيارات التكوين التي يمكنك تحديدها في تنسيق ملف التكوين SSH. ستحصل على إتمامات وتلوينات في هذا الملف ويمكنك الضغط على (⌃Space) من أجل التحسس الذكي لمعرفة المزيد حول خيارات التكوين.

الخيارات المستخدمة أعلاه هي:
مضيفاسم مستعار سهل التذكر لجهازك المضيف.
اسم المضيفاسم مضيف الخادم (يمكنك استخدام عنوان IP للخادم).
المستخدمالمستخدم الذي حددته لتسجيل الدخول إلى الجهاز عبر SSH.
ميناءالمنفذ المستخدم للاتصال عبر SSH. المنفذ الافتراضي هو 22 ، ولكن إذا قمت بتحديد منفذ فريد ، فيمكنك تكوينه هنا.
IdentityFileموقع الملف حيث قمت بتخزين المفتاح الخاص بك.
يمكنك إضافة المعلومات لجميع المضيفين لديك. بمجرد حفظ ملف التكوين ، ستتمكن من رؤية هذه الأجهزة المضيفة في Remote Explorer ، وكذلك أي مجلدات فتحتها على هذا المضيف. يمكنك تحديد الرمز المجاور لكل مضيف أو مجلد ، وسيتم تشغيل نافذة VS Code جديدة (مثيل) وتوصيلك بذلك المضيف. في لقطة الشاشة أدناه ، أنا متصل بجهازي البعيد "python-linux-vm" ، ويظهر لي Remote Explorer المجلدات التي قمت بالاتصال بها في الماضي ، وكذلك أي منافذ معاد توجيهها من الجهاز البعيد.



ProxyCommand


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

لاستخدام إعداد قفزة مع ملحق Remote - SSH ، يمكنك استخدام خيار التكوين ProxyCommand . سيفتح هذا التكوين اتصال SSH في الخلفية بمربع القفز ، ثم يتصل عبر عنوان IP خاص بالهدف.

يمكنك تعيين خيار التكوين ProxyCommand في ملف التكوين SSH مثل هذا:

 # Jump box with public IP address Host jump-box HostName 52.179.157.97 User sana IdentityFile ~/.ssh/jumpbox # Target machine with private IP address Host target-box HostName <IP address of target> User sana IdentityFile ~/.ssh/target ProxyCommand ssh -q -W %h:%p jump-box 

ControlMaster


إذا كنت تتصل بمضيف SSH بعيد باستخدام أساليب مصادقة أخرى إلى جانب المصادقة المستندة إلى المفاتيح ، مثل عامل ثنائي أو مستند إلى كلمة مرور أو مفتاح SSH مع عبارة مرور ، فقد تضطر إلى إدخال المعلومات المطلوبة عدة مرات.

بدلاً من فتح اتصالات SSH متعددة ، يمكنك استخدام خيار ControlMaster (فقط على عملاء ControlMaster / Linux) لإعادة استخدام اتصال موجود وتقليل عدد المرات التي يجب عليك إدخال عبارة المرور الخاصة بك.

لاستخدام هذه الميزة ، أضف ما يلي إلى ملف تكوين SSH:

 Host * ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h-%p ControlPersist 600 

الجهاز البعيد حاليا


إذا تم تقييدك بواسطة جدار الحماية أو قامت شركتك بإغلاق أجهزة VM الخاصة بك ولم تتمكن من الاتصال بالإنترنت ، فلن يتمكن ملحق SSH عن بُعد من الاتصال بـ VM لأن VS Code يحتاج إلى تنزيل مكون يسمى خادم VS Code إلى الجهاز البعيد.

ومع ذلك ، يمكنك الآن حل هذه المشكلة عن طريق إعداد مستخدم جديد في ملحق Remote SSH. إذا قمت بتمكين الإعداد remote.SSH.allowLocalServerDownload ، فإن الامتداد سيقوم بتثبيت خادم كود VS على العميل أولاً ثم يقوم بنسخه إلى الخادم عبر SCP.

ملاحظة: هذه ميزة تجريبية حاليًا ولكن سيتم تشغيلها افتراضيًا في الإصدار التالي.

عن بعد - SSH Nightly extension


إذا كنت مهتمًا باختبار التحديثات الجديدة والميزات التجريبية بمجرد توفرها ، فقم بتثبيت ملحق Remote SSH Nightly (قم بإلغاء تثبيت الامتداد الثابت Remote-SSH أولاً). هذه هي البنية الليلية للملحق حيث نجرب الميزات والإعدادات الجديدة قبل إطلاقها في الإصدار الثابت.

Source: https://habr.com/ru/post/ar472184/


All Articles