
دايمون اتصال SSH لأنظمة Debian/Raspbian/Ubuntu/etc
sidedoor تحافظ على اتصال SSH أو نفق باستخدام خفي نص برمجي.
الاستخدام الأساسي هو الحفاظ على إعادة توجيه منفذ بعيد إلى خادم SSH المحلي (أو منفذ آخر). وبالتالي، يمكن الوصول إلى الجهاز المحلي دون استخدام اتصالات واردة قد يتم حظرها بواسطة NAT أو جدار حماية أو تكون غير عملية مع الأجهزة المحمولة.
يمكن لعملاء SSH الاتصال بالجهاز عبر وكيل SSH العكسي الذي تنقله sidedoor إليه. يمكن أن يكون خادم الوكيل هذا غير موثوق به ويديره طرف ثالث أو خدمة سحابية.
تمكن sidedoor من الحفاظ على استمرارية SSH وتعيد محاولة SSH مع تأخير أسي. من أجل إعادة الاتصال في أسرع وقت ممكن، فإنها تعيد ضبط التأخير عند تشغيل واجهة الشبكة (أو تغييرها).
حالات استخدام أخرى:
هل تستخدم sidedoor؟
تقارير الأخطاء، طلبات الميزات - من فضلك افتح Issue!
الطلبات المدمجة (Pull requests) مرحب بها.
sidedoor معبأة لنظام Debian والأنظمة القائمة على Debian مثل Raspbian و Ubuntu و VyOS/EdgeOS،
ولكن يجب أن تعمل في أي بيئة POSIX مع عميل SSH (OpenSSH).
إذا كانت sidedoor موجودة في مستودعات توزيعتك (Debian 9+، Ubuntu 17.04+)،
ببساطة قم بتثبيتها باستخدام مدير الحزم الخاص بك.
sudo apt install sidedoor
وإلا، يمكنك تنزيل حزم deb يدويًا من صفحة الإصدارات.
لمنح مستخدم sidedoor صلاحية الوصول الكامل للجذر،
قم بتثبيت حزمة sidedoor-sudo.
يتم تكوين الخادم البعيد ومنافذ إعادة التوجيه في /etc/default/sidedoor.
توجد ملفات تكوين SSH في الدليل /etc/sidedoor.
قم بتكوين REMOTE_SERVER و OPTIONS في /etc/default/sidedoor.
للحصول على بعض الوسائط لتمريرها في OPTIONS، راجع منشور المدونة
شرح إعادة توجيه المنافذ المحلية والبعيدة مع أمثلة
وصفحة الدليل لـ ssh.
قم بتحرير ملفات تكوين SSH تحت /etc/sidedoor.
id_rsa: مفتاح SSH الخاص للوصول إلى الخادم البعيد.
يمكن استخدام ssh-keygen لإنشاء هذا المفتاح
(اضغط y عند المطالبة بالكتابة فوق الملف الموجود):
sudo ssh-keygen -t rsa -N '' -f /etc/sidedoor/id_rsa
ستحتاج المفتاح العام المقابل id_rsa.pub إلى تضمينه في
ملف ~/.ssh/authorized_keys للمستخدم البعيد.
/etc/ssh/sshd_config.
ChallengeResponseAuthentication no و PasswordAuthentication no).ListenAddress ::1 و ListenAddress 127.0.0.1).sshd، على سبيل المثال،
sudo service ssh reload.ssh_client_config_example وقم بتضمينه في ملف
~/.ssh/config لأحد العملاء للوصول بسهولة إلى خادم SSH المنقول
مع ssh و scp و rsync، إلخ.sidedoor تهدف إلى كونها حلاً خفيفًا لنقل المنافذ بأقل تبعيات، ولكن هناك بعض البدائل بميزات أكثر.
يوفر Tor إخفاء الهوية للخوادم التي تعمل كخدمات مخفية، ولكنه يتعامل أيضًا مع عبور NAT.
المزايا:
العيوب:
على كل من الجهاز والعملاء، قم بتثبيت Tor.
sudo apt install tor
على الجهاز الذي يتم كشفه، قم بتحرير /etc/tor/torrc
لإنشاء خدمة مخفية على المنفذ 22.
HiddenServiceDir /var/lib/tor/sshd/
HiddenServicePort 22 127.0.0.1:22
HiddenServiceAuthorizeClient stealth client
استبدل "client" بقائمة مفصولة بفواصل من أسماء العملاء لـ إنشاء أسرار ترخيص متعددة.
ثم أعد تحميل Tor واحصل على اسم المضيف للبصل وبيانات الترخيص.
sudo service tor reload
sudo cat /var/lib/tor/sshd/hostname
على العملاء، قم بتحرير /etc/tor/torrc
لإضافة اسم مضيف البصل وبيانات الترخيص الموضحة في ملف hostname.
HidServAuth <hostname>.onion <secret>
ثم أعد تحميل Tor وقم بتشغيل torsocks ssh <hostname>.onion أو قم بتعيين ProxyCommand
في ملف ~/.ssh/config.
ProxyCommand torsocks nc <hostname>.onion 22
autossh، مثل sidedoor،
يبدأ ssh ويعيد تشغيله حسب الحاجة.
بعض الاختلافات تشمل:
sidedoor هي خفي نص برمجي بسيط. autossh هو برنامج C أكثر شمولاً وقابلية للتكوين.
sidedoor تمكن من الحفاظ على استمرارية SSH
(ServerAliveInterval و ServerAliveCountMax)،
المتوفرة في الإصدارات الحديثة من OpenSSH.
autossh يراقب ssh عن طريق إرسال البيانات عبر
حلقة من إعادة توجيه المنافذ (هذه الميزة تسبق الحفاظ على استمرارية SSH)،
على الرغم من أنه يمكن تعطيل هذا باستخدام الخيار -M 0.
sidedoor تهدف للتشغيل التلقائي كخدمة،
لذا تتضمن الحزمة نصوص init/systemd وملفات التكوين.
autossh لا يتضمن نص init/systemd
(خطأ في Debian #698390).
sidedoor تعطل الأوامر عن بُعد وتخصيص pseudo-tty.
للاستخدام التفاعلي، ضع في اعتبارك autossh مع الحفاظ على استمرارية SSH
أو Mosh.
sidedoor تعيد المحاولة دائمًا إذا خرج ssh بحالة خروج غير صفرية.
autossh لا يعيد المحاولة إذا خرج ssh بسرعة كبيرة في المحاولة الأولى،
وهو ما يمكن أن يحدث عندما يكون اتصال الشبكة أو تحليل DNS
معطلاً، خاصة على الأجهزة المحمولة.
كل من و autossh لديهما منطق تأخير إعادة المحاولة.
حقوق الطبع 2015-2017 دارا عديب.
هذا البرنامج هو برمجيات حرة: يمكنك إعادة توزيعه و/أو تعديله بموجب شروط رخصة جنو العمومية العامة كما نشرتها مؤسسة البرمجيات الحرة، إما الإصدار 3 من الرخصة، أو (وفقًا لخيارك) أي إصدار لاحق.
يتم توزيع هذا البرنامج على أمل أن يكون مفيدًا، ولكن دون أي ضمان؛ حتى دون الضمان الضمني للتسويق أو الملاءمة لغرض معين. راجع رخصة جنو العمومية العامة لمزيد من التفاصيل.
يجب أن تكون قد تلقيت نسخة من رخصة جنو العمومية العامة مع هذا البرنامج. إذا لم يكن الأمر كذلك، فانتقل إلى https://www.gnu.org/licenses/.
known_hosts: مفتاح مضيف SSH للخادم البعيد.
اختياريًا، امنح الوصول عن بُعد إلى مستخدم sidedoor المحلي عن طريق إضافة
مفاتيح SSH العمومية إلى الملف /etc/sidedoor/authorized_keys.
/etc/sidedoor/authorized_keys هو رابط رمزي إلى
~sidedoor/.ssh/authorized_keys.
حزمة sidedoor-sudo، إذا تم تثبيتها، توفر صلاحية الوصول الكامل للجذر
لهذا المستخدم.
أعد تشغيل خدمة sidedoor لتطبيق التغييرات.
sudo service sidedoor restart
sidedoorsidedoor تعيد ضبط تأخير إعادة المحاولة عند تشغيل واجهة الشبكة،
لمحاولة إعادة الاتصال في أسرع وقت ممكن، عن طريق استقبال SIGUSR1
من نص if-up.d. autossh ليس لديه خطافات حالة الشبكة.