الاتصال بـ HDInsight (Apache Hadoop) باستخدام SSH
تعرف على كيفية استخدام Secure Shell (SSH) للاتصال بـ Apache Hadoop بأمان على Azure HDInsight. للحصول على معلومات حول الاتصال من خلال شبكة ظاهرية، راجع بنية الشبكة الظاهرية Azure HDInsight. راجع أيضاً، تخطيط توزيع الشبكة الظاهرية لأنظمة مجموعات Azure HDInsight.
يحتوي الجدول التالي على معلومات العنوان والمنفذ المطلوبة عند الاتصال بـ HDInsight باستخدام عميل SSH:
العنوان | المنفذ | يتصل بـ... |
---|---|---|
<clustername>-ssh.azurehdinsight.net |
22 | عقدة الرأس الأساسية |
<clustername>-ssh.azurehdinsight.net |
23 | العقدة الثانوية |
<edgenodename>.<clustername>-ssh.azurehdinsight.net |
22 | عقدة الحافة (أي نوع نظام مجموعة آخر، إذا كان هناك عقدة حافة) |
استبدل <clustername>
باسم نظام مجموعة الخاص بك. استبدل <edgenodename>
باسم عقدة الحافة.
إذا كان نظام المجموعة يحتوي على عقدة حافة، نوصي بالاتصال دائماً إلى عقدة الحافة باستخدام SSH. تستضيف عقد الرأس الخدمات التي تعتبر حاسمة لحالة Hadoop. تعمل عقدة الحافة فقط على ما تضعه عليها. لمزيد من المعلومات حول استخدام عقد الحافة، راجع استخدام عقد الحافة في HDInsight.
تلميح
عند الاتصال بـ HDInsight لأول مرة، قد يعرض عميل SSH الخاص بك تحذيراً بأنه لا يمكن إثبات أصالة المضيف. عند المطالبة، حدد «نعم»، لإضافة المضيف إلى قائمة الخادم الموثوق به لعميل SSH الخاص بك.
إذا كنت قد قمت بالاتصال مسبقاً بخادم يحمل نفس الاسم، قد تتلقى تحذيراً بأن مفتاح المضيف المخزن لا يطابق مفتاح المضيف الخاص بالخادم. راجع الوثائق لعميل SSH الخاص بك حول كيفية إزالة الإدخال الموجود لاسم الخادم.
عملاء SSH
توفر أنظمة Linux وUnix وmacOS الأوامر ssh
وscp
. يتم استخدام العميل ssh
عادة لإنشاء جلسة سطر أوامر بعيدة مع نظام يستند إلى Linux أو Unix. يتم استخدام العميل scp
لنسخ الملفات بشكل آمن بين العميل والنظام البعيد.
لا تقوم Microsoft Windows بتثبيت أي عملاء SSH بشكل افتراضي. عملاء ssh
وscp
متوفرين لـ Windows من خلال الحزم التالية:
عميل OpenSSH. هذا العميل هو ميزة اختيارية مقدمة في Windows 10 Fall Creators Update.
Azure Cloud Shell. توفر Cloud Shell بيئة Bash في مستعرضك.
Git.
وهناك أيضاً العديد من عملاء SSH الرسومية، مثل PuTTY وMobaXterm. في حين يمكن استخدام هؤلاء العملاء للاتصال بـ HDInsight، عملية الاتصال مختلفة عن استخدام الأداة المساعدة ssh
. لمزيد من المعلومات، راجع وثائق العميل الرسومي الذي تستخدمه.
المصادقة: مفاتيح SSH
تستخدم مفاتيح SSH تشفير المفتاح العام لمصادقة جلسات SSH. مفاتيح SSH أكثر أماناً من كلمات المرور، وتوفر طريقة سهلة لتأمين الوصول إلى نظام مجموعة Hadoop.
إذا تم تأمين حساب SSH الخاص بك باستخدام مفتاح، يجب على العميل توفير المفتاح الخاص المطابق عند الاتصال:
يمكن تكوين معظم العملاء لاستخدام مفتاح افتراضي. على سبيل المثال،
ssh
يبحث العميل عن مفتاح خاص في على بيئات Linux وUnix~/.ssh/id_rsa
.يمكنك تحديد المسار إلى مفتاح خاص. مع عميل
ssh
، يتم استخدام المعلمة-i
لتحديد المسار إلى المفتاح الخاص. على سبيل المثال،ssh -i ~/.ssh/id_rsa sshuser@myedge.mycluster-ssh.azurehdinsight.net
إذا كان لديك عدة مفاتيح خاصة للاستخدام مع خوادم مختلفة، ففكر في استخدام أداة مساعدة مثل عامل ssh (https://en.wikipedia.org/wiki/Ssh-agent). يمكن استخدام الأداة المساعدة
ssh-agent
لتحديد المفتاح تلقائياً لاستخدامه عند إنشاء جلسة SSH.
هام
إذا قمت بتأمين المفتاح الخاص بك باستخدام عبارة مرور، يجب إدخال عبارة المرور عند استخدام المفتاح. يمكن للأدوات المساعدة مثل ssh-agent
تخزين كلمة المرور مؤقتاً من أجل راحتك.
أنشئ مفتاح مزدوج SSH
استخدم الأمر ssh-keygen
لإنشاء ملفات المفاتيح العامة والخاصة. يقوم الأمر التالي بإنشاء مفتاح مزدوج 2048 بت RSA الذي يمكن استخدامه مع HDInsight:
ssh-keygen -t rsa -b 2048
تتم مطالبتك بالمعلومات أثناء عملية إنشاء المفتاح. على سبيل المثال، حيث يتم تخزين المفاتيح أو ما إذا كان سيتم استخدام عبارة مرور أم لا. بعد اكتمال العملية، يتم إنشاء ملفين ومفتاح عام ومفتاح خاص.
يتم استخدام المفتاح العام لإنشاء نظام مجموعة HDInsight. المفتاح العام له ملحق
.pub
.يتم استخدام المفتاح الخاص لمصادقة العميل إلى نظام مجموعة HDInsight.
هام
يمكنك تأمين المفاتيح الخاصة بك باستخدام عبارة مرور. عبارة المرور هي كلمة مرور على المفتاح الخاص بك بشكل فعال. حتى إذا حصل شخص ما على المفتاح الخاص بك، يجب أن يكون لديهم عبارة المرور لاستخدام هذا المفتاح.
إنشاء HDInsight باستخدام المفتاح العام
أسلوب الإنشاء | كيفية استخدام المفتاح العام |
---|---|
مدخل Azure | قم بإلغاء تحديد استخدام كلمة مرور تسجيل دخول نظام المجموعة لـ SSH، ثم حدد المفتاح العام كنوع مصادقة SSH. وأخيرا، حدد ملف المفتاح العام أو الصق محتويات النص للملف في حقل المفتاح العام SSH. |
Azure PowerShell | استخدم معلمة -SshPublicKey لـ cmdlet New-AzHdinsightCluster ثم قم بتمرير محتويات المفتاح العام كسلسلة. |
Azure CLI | استخدم معلمة --sshPublicKey للأمر az hdinsight create ثم قم بتمرير محتويات المفتاح العام كسلسلة. |
قالب Resource Manager | للحصول على مثال لاستخدام مفاتيح SSH مع قالب، راجع توزيع HDInsight على Linux باستخدام مفتاح SSH. يتم استخدام العنصر publicKeys في ملف azuredeploy.json لتمرير المفاتيح إلى Azure عند إنشاء نظام المجموعة. |
المصادقة: كلمة المرور
يمكن تأمين حسابات SSH باستخدام كلمة مرور. عند الاتصال ب، HDInsight باستخدام SSH، ستتم مطالبتك بإدخال كلمة المرور.
تحذير
لا تنصح Microsoft باستخدام مصادقة كلمة المرور لـ SSH. يمكن تخمين كلمات المرور وهي عرضة لهجمات بقوة غاشمة. بدلاً من ذلك، نوصي باستخدام مفاتيح SSH للمصادقة.
هام
تنتهي صلاحية كلمة مرور حساب SSH بعد 70 يوماً من إنشاء نظام المجموعة HDInsight. إذا انتهت صلاحية كلمة المرور الخاصة بك، يمكنك تغييرها باستخدام المعلومات الموجودة في مستند إدارة HDInsight.
إنشاء HDInsight باستخدام كلمة مرور
أسلوب الإنشاء | كيفية تحديد كلمة المرور |
---|---|
مدخل Azure | بشكل افتراضي، يحتوي حساب مستخدم SSH نفس كلمة المرور كحساب تسجيل الدخول نظام المجموعة. لاستخدام كلمة مرور مختلفة، قم بإلغاء تحديد استخدام كلمة مرور تسجيل الدخول إلى نظام المجموعة ل SSH، ثم أدخل كلمة المرور في حقل كلمة مرور SSH. |
Azure PowerShell | استخدم المعلمة --SshCredential لـ New-AzHdinsightCluster cmdlet وقم بتمرير عنصر PSCredential الذي يحتوي على كلمة مرور واسم حساب المستخدم SSH. |
Azure CLI | استخدم المعلمة --ssh-password للأمر az hdinsight create وقم بإدخال قيمة كلمة المرور. |
قالب Resource Manager | للحصول على مثال لاستخدام كلمة المرور مع قالب، راجع توزيع HDInsight على Linux باستخدام كلمة مرور SSH. يتم استخدام العنصر linuxOperatingSystemProfile في ملف azuredeploy.json لتمرير كلمة مرور واسم حساب SSH إلى Azure عند إنشاء نظام المجموعة. |
تغيير كلمة مرور SSH
للحصول على معلومات حول تغيير كلمة مرور حساب المستخدم SSH، راجع القسم تغيير كلمات المرور للمستند إدارة HDInsight.
مجال المصادقة ضم HDInsight
إذا كنت تستخدم نظام مجموعة HDInsight مرتبط بمجال، يجب عليك استخدام الأمر kinit
بعد الاتصال بمستخدم SSH المحلي. يطالبك هذا الأمر بمستخدم مجال وكلمة مرور، ويصادق جلسة العمل الخاصة بك مع مجال Microsoft Entra المقترن بالمجموعة.
يمكنك أيضاً تمكين مصادقة Kerberos على كل عقدة مرتبطة بالمجال (على سبيل المثال، عقدة الرأس، عقدة الحافة) إلى ssh باستخدام حساب المجال. للقيام بذلك، قم بتحرير ملف التكوين sshd:
sudo vi /etc/ssh/sshd_config
إلغاء الاتصال وتغيير KerberosAuthentication
إلى yes
sudo service sshd restart
استخدم الأمر klist
للتحقق مما إذا كانت مصادقة Kerberos ناجحة أم لا.
لمزيد من المعلومات، راجع تكوين HDInsight المرتبط بالمجال.
الاتصال بالعقد
يمكن الوصول إلى عقدة الرأس وعقدة الحافة (إذا كان هناك أحد منهما) عبر الإنترنت على المنفذين 22 و23.
عند الاتصال بعقد الرأس، استخدم المنفذ 22 للاتصال بعقدة الرأس الأساسية والمنفذ 23 للاتصال بعقدة الرأس الثانوية. اسم المجال المؤهل بالكامل المطلوب استخدامه هو
clustername-ssh.azurehdinsight.net
، حيثclustername
هو اسم نظام المجموعة الخاص بك.# Connect to primary head node # port not specified since 22 is the default ssh sshuser@clustername-ssh.azurehdinsight.net # Connect to secondary head node ssh -p 23 sshuser@clustername-ssh.azurehdinsight.net
عند الاتصال بعقدة الحافة، استخدم المنفذ 22. اسم المجال المؤهل بالكامل هو
edgenodename.clustername-ssh.azurehdinsight.net
، حيثedgenodename
هو الاسم الذي قمت بإدخاله عند إنشاء عقدة الحافة.clustername
هو اسم نظام المجموعة.# Connect to edge node ssh sshuser@edgnodename.clustername-ssh.azurehdinsight.net
هام
تفترض الأمثلة السابقة استخدام مصادقة كلمة المرور أو أن مصادقة الشهادة تحدث تلقائياً. إذا كنت تستخدم مفتاح SSH مزدوج للمصادقة، ولم يتم استخدام الشهادة تلقائياً، استخدم المعلمة -i
لتحديد المفتاح الخاص. على سبيل المثال، ssh -i ~/.ssh/mykey sshuser@clustername-ssh.azurehdinsight.net
بمجرد الاتصال، تتغير المطالبة للإشارة إلى اسم مستخدم SSH والعقدة التي تتصل بها. على سبيل المثال، عند الاتصال بعقدة الرأس الأساسية مثل sshuser
، تكون المطالبة sshuser@<active-headnode-name>:~$
.
الاتصال بعقد Apache Zookeeper والعامل
عقد العامل وعقد Zookeeper غير قابلة للوصول مباشرةً من الإنترنت. يمكن الوصول إليها من عقد رأس نظام المجموعة أو عقد الحافة. فيما يلي الخطوات العامة للاتصال بالعقد الأخرى:
استخدم SSH للاتصال بعقدة الرأس أو الحافة:
ssh sshuser@myedge.mycluster-ssh.azurehdinsight.net
من اتصال SSH إلى عقدة الرأس أو الحافة، استخدم الأمر
ssh
للاتصال بعقدة العامل في نظام المجموعة:ssh sshuser@wn0-myhdi
لاسترداد قائمة أسماء العقد، راجع إدارة HDInsight باستخدام مستند واجهة برمجة تطبيقات REST لـ Apache Ambari.
إذا تم تأمين حساب SSH باستخدام كلمة مرور، أدخل كلمة المرور عند الاتصال.
إذا تم تأمين حساب SSH باستخدام مفاتيح SSH، تأكد من تمكين إعادة توجيه SSH على العميل.
إشعار
طريقة أخرى للوصول مباشرة إلى كافة العقد في نظام المجموعة هي تثبيت HDInsight في شبكة Azure الظاهرية. ثم يمكنك الانضمام إلى الجهاز البعيد إلى نفس الشبكة الظاهرية والوصول مباشرة إلى كافة العقد في نظام المجموعة.
لمزيد من المعلومات، راجع تخطيط شبكة ظاهرية لـ HDInsight.
تكوين إعادة توجيه عامل SSH
هام
تفترض الخطوات التالية نظام مستند إلى Linux أو UNIX، وتعمل مع Bash على Windows 10. إذا لم تنجح هذه الخطوات للنظام الخاص بك، قد تحتاج إلى مراجعة الوثائق لعميل SSH الخاص بك.
باستخدام محرر نص، افتح
~/.ssh/config
. إذا لم يكن هذا الملف موجوداً، يمكنك إنشاؤه بإدخالtouch ~/.ssh/config
في سطر أوامر.قم بإضافة النص التالي إلى ملف
config
:Host <edgenodename>.<clustername>-ssh.azurehdinsight.net ForwardAgent yes
قم باستبدال معلومات المضيف بعنوان العقدة التي تتصل بها باستخدام SSH. يستخدم المثال السابق عقدة الحافة. يقوم هذا الإدخال بتكوين إعادة توجيه عامل SSH للعقدة المحددة.
اختبار إعادة توجيه عامل SSH باستخدام الأمر التالي من المحطة الطرفية:
echo "$SSH_AUTH_SOCK"
يرجع هذا الأمر معلومات مشابهة للنص التالي:
/tmp/ssh-rfSUL1ldCldQ/agent.1792
إذا لم يتم إرجاع أي شيء، ثم
ssh-agent
لا يعمل.بمجرد التحقق من تشغيل عامل ssh، استخدم ما يلي لإضافة المفتاح الخاص SSH الخاص بك إلى العامل:
ssh-add ~/.ssh/id_rsa
إذا تم تخزين مفتاحك الخاص في ملف مختلف، استبدل
~/.ssh/id_rsa
بالمسار إلى الملف.قم بالاتصال بعقدة حافة نظام المجموعة أو العقد الرأسية باستخدام SSH. ثم استخدم الأمر SSH للاتصال بعقده عامل أو zookeeper. يتم تأسيس الاتصال باستخدام المفتاح الذي تمت إعادة توجيهه.