| SSH(1) | General Commands Manual | SSH(1) |
الاسم
ssh —
عميل OpenSSH
للولوج عن
بعد
موجز
ssh
[-46AaCfGgKkMNnqsTtVvXxYy]
[-B bind_interface]
[-b bind_address]
[-c cipher_spec]
[-D
[bind_address:]port]
[-E log_file]
[-e escape_char]
[-F configfile]
[-I pkcs11]
[-i identity_file]
[-J destination]
[-L address]
[-l login_name]
[-m mac_spec]
[-O ctl_cmd]
[-o option]
[-P tag]
[-p port]
[-R address]
[-S ctl_path]
[-W
host:port]
[-w
local_tun[:remote_tun]]
destination [command
[argument ...]] ssh
[-Q query_option]
الوصف
ssh (عميل SSH)
هو برنامج
للولوج إلى
حاسوب عن
بعد وتنفيذ
الأوامر
عليه. يهدف
البرنامج
إلى توفير
اتصالات
مؤمنة
ومعماة بين
مضيفين غير
موثوقين
عبر شبكة
غير آمنة.
كما يمكن
تمرير
اتصالات X11،
ومنافذ TCP
التعسفية،
ومقابس
UNIX-domain عبر
القناة
الآمنة.
يتصل ssh
ويولج إلى
destination
المحدد،
والذي قد
يُحدد إما
على هيئة [user@]hostname
أو معرف
مورد موحد (URI)
بالصيغة
ssh://[user@]hostname[:port].
يجب على
المستخدم
إثبات
هويته
للحاسوب
البعيد
باستخدام
إحدى الطرق
العديدة
(انظر
أدناه).
إذا حُدد command ، فسيُنفذ على المضيف البعيد بدلاً من صدفة الولوج. يمكن تحديد سطر أوامر كامل كـ command ، أو قد يتضمن وسائط إضافية. في حال توفرها، ستُلحق الوسائط بالأمر، مفصولة بمسافات، قبل إرسالها إلى الخادم لتنفيذها.
الخيارات هي كما يلي:
-4- يجبر
sshعلى استخدام عناوين IPv4 فقط. -6- يجبر
sshعلى استخدام عناوين IPv6 فقط. -A- يفعّل
تمرير
الاتصالات
من وكيل
استيثاق
مثل
ssh-agent(1).
يمكن تحديد
هذا أيضاً
لكل مضيف
على حدة في
ملف الضبط.
يجب تفعيل تمرير الوكيل بحذر. يمكن للمستخدمين الذين لديهم القدرة على تجاوز أذونات الملفات على المضيف البعيد (لمقبس UNIX-domain الخاص بالوكيل) الوصول إلى الوكيل المحلي عبر الاتصال الممرر. لا يمكن للمهاجم الحصول على مادة المفاتيح من الوكيل، ولكن يمكنه إجراء عمليات على المفاتيح تمكنه من الاستيثاق باستخدام الهويات المحملة في الوكيل. قد يكون استخدام مضيف قفز (انظر
-J) بديلاً أكثر أماناً. -a- يعطل تمرير اتصال وكيل الاستيثاق.
-Bbind_interface- الربط بعنوان bind_interface قبل محاولة الاتصال بالمضيف الوجهة. هذا مفيد فقط في الأنظمة التي تملك أكثر من عنوان واحد.
-bbind_address- استخدام bind_address على الحاسوب المحلي كعنوان مصدر للاتصال. مفيد فقط في الأنظمة التي تملك أكثر من عنوان واحد.
-C- يطلب ضغط
جميع
البيانات
(بما في ذلك
المدخلات
القياسية،
والمخرجات
القياسية،
والأخطاء
القياسية،
وبيانات
اتصالات X11 وTCP
و UNIX-domain
الممررة).
خوارزمية
الضغط هي
نفسها
المستخدمة
في gzip(1).
الضغط
مستحب في
خطوط
المودم
والاتصالات
البطيئة
الأخرى،
ولكنه
سيؤدي فقط
إلى إبطاء
الأمور في
الشبكات
السريعة.
يمكن ضبط
القيمة
المبدئية
لكل مضيف
على حدة في
ملفات
الضبط؛
انظر خيار
Compressionفي ssh_config(5). -ccipher_spec- يختار
مواصفات
التعمية
لتعمية
الجلسة.
cipher_spec هي
قائمة
بالمعميات
مفصولة
بفاصلة
ومرتبة حسب
الأفضلية.
انظر
الكلمة
المفتاحية
Ciphersفي ssh_config(5) لمزيد من المعلومات. -D[bind_address:]port- يحدد تمرير
منفذ محلي
«ديناميكي»
على مستوى
التطبيق.
يعمل هذا عن
طريق تخصيص
مقبس
للاستماع
إلى port
على الجانب
المحلي،
وربطه
اختيارياً
بـ bind_address
المحدد.
كلما أُجري
اتصال بهذا
المنفذ،
يُمرر
الاتصال
عبر القناة
الآمنة، ثم
يُستخدم
بروتوكول
التطبيق
لتحديد
مكان
الاتصال من
الحاسوب
البعيد.
حالياً
يُدعم
بروتوكولا
SOCKS4 و SOCKS5،
وسيعمل
sshكخادم SOCKS. يمكن للمستخدم الجذري (root) فقط تمرير المنافذ ذات الامتيازات. يمكن أيضاً تحديد عمليات تمرير المنافذ الديناميكية في ملف الضبط.يمكن تحديد عناوين IPv6 عن طريق حصر العنوان بين قوسين مربعين. يمكن للمستخدم الخارق فقط تمرير المنافذ ذات الامتيازات. مبدئياً، يُربط المنفذ المحلي وفقاً لإعداد
GatewayPorts. ومع ذلك، يمكن استخدام bind_address صريح لربط الاتصال بعنوان محدد. يشير bind_address بـ «localhost» إلى أن منفذ الاستماع مربوط للاستخدام المحلي فقط، بينما يشير العنوان الفارغ أو «*» إلى أن المنفذ يجب أن يكون متاحاً من جميع الواجهات. -Elog_file- إلحاق سجلات التنقيح بـ log_file بدلاً من الخطأ القياسي.
-eescape_char- يضبط محرف
الهروب
للجلسات
التي
تستخدم pty
(المبدئي:
‘
~’). يُتعرف على محرف الهروب فقط في بداية السطر. محرف الهروب متبوعاً بنقطة (‘.’) يغلق الاتصال؛ متبوعاً بـ control-Z يعلق الاتصال؛ ومتبوعاً بنفسه يرسل محرف الهروب مرة واحدة. ضبط المحرف إلى «none» يعطل أي هروب ويجعل الجلسة شفافة تماماً. -Fconfigfile- يحدد ملف ضبط بديل لكل مستخدم. إذا أُعطي ملف ضبط في سطر الأوامر، فسيُتجاهل ملف الضبط الخاص بالنظام (/etc/ssh/ssh_config). القيمة المبدئية لملف الضبط لكل مستخدم هي ~/.ssh/config. إذا ضُبط على «none»، فلن تُقرأ أي ملفات ضبط.
-f- يطلب من
sshالانتقال إلى الخلفية قبل تنفيذ الأمر مباشرة. هذا مفيد إذا كانsshسيطلب كلمات سر أو عبارات مرور، ولكن المستخدم يريده في الخلفية. يتضمن هذا الخيار-n. الطريقة الموصى بها لبدء برامج X11 في موقع بعيد هي باستخدام شيء مثلssh -f host xterm.إذا ضُبط خيار الضبط
ExitOnForwardFailureعلى «yes»، فإن العميل الذي بدأ بـ-fسينتظر حتى تُنشأ جميع عمليات تمرير المنافذ البعيدة بنجاح قبل وضع نفسه في الخلفية. راجع وصفForkAfterAuthenticationفي ssh_config(5) للتفاصيل. -G- يجعل
sshيطبع ضبطه بعد تقييم كتلHostوMatchثم يخرج. -g- يسمح للمضيفين البعيدين بالاتصال بالمنافذ المحلية الممررة. إذا استُخدم في اتصال مُجمّع (multiplexed)، فيجب تحديد هذا الخيار في العملية الرئيسة.
-Ipkcs11- تحديد
مكتبة PKCS#11
المشتركة
التي يجب أن
يستخدمها
sshللتواصل مع رمز PKCS#11 الذي يوفر مفاتيح لاستيثاق المستخدم. -iidentity_file- يختار
ملفاً
تُقرأ منه
الهوية
(المفتاح
الخاص)
لاستيثاق
المفتاح
العام.
يمكنك
أيضاً
تحديد ملف
مفتاح عام
لاستخدام
المفتاح
الخاص
المقابل
المحمل في
ssh-agent(1)
عندما لا
يكون ملف
المفتاح
الخاص
موجوداً
محلياً.
المبدئي هو
~/.ssh/id_rsa ، و
~/.ssh/id_ecdsa ، و
~/.ssh/id_ecdsa_sk ، و
~/.ssh/id_ed25519 و
~/.ssh/id_ed25519_sk.
يمكن أيضاً
تحديد
ملفات
الهوية لكل
مضيف في ملف
الضبط. من
الممكن
وجود
خيارات
-iمتعددة (وهويات متعددة محددة في ملفات الضبط). إذا لم تُحدد أي شهادات صراحة بواسطة توجيهCertificateFile، فسيحاولsshأيضاً تحميل معلومات الشهادة من اسم الملف الذي يُحصل عليه بإلحاق -cert.pub بأسماء ملفات الهوية. -Jdestination- الاتصال
بالمضيف
المستهدف
عن طريق
إجراء
اتصال
sshأولاً بمضيف القفز الموصوف بـ destination ثم إنشاء تمرير TCP إلى الوجهة النهائية من هناك. يمكن تحديد قفزات متعددة مفصولة بفاصلات. يمكن تحديد عناوين IPv6 عن طريق حصر العنوان بين قوسين مربعين. هذا اختصار لتحديد توجيه الضبطProxyJump. لاحظ أن توجيهات الضبط المتوفرة في سطر الأوامر تنطبق بشكل عام على المضيف الوجهة وليس على أي مضيفات قفز محددة. استخدم ~/.ssh/config لتحديد ضبط مضيفات القفز. -K- يفعّل الاستيثاق المعتمد على GSSAPI وتمرير (تفويض) بيانات اعتماد GSSAPI إلى الخادم.
-k- يعطل تمرير (تفويض) بيانات اعتماد GSSAPI إلى الخادم.
-L[bind_address:]port:host:hostport-L[bind_address:]port:remote_socket-Llocal_socket:host:hostport-Llocal_socket:remote_socket- يحدد أن
الاتصالات
بمنفذ TCP
المعطى أو
مقبس Unix على
المضيف
المحلي
(العميل)
يجب
تمريرها
إلى المضيف
والمنفذ
المعطيين،
أو مقبس Unix،
في الجانب
البعيد.
يعمل هذا عن
طريق تخصيص
مقبس
للاستماع
إما لمنفذ TCP
port في
الجانب
المحلي،
مربوط
اختيارياً
بـ bind_address
المحدد، أو
لمقبس Unix.
كلما أُجري
اتصال
بالمنفذ أو
المقبس
المحلي،
يُمرر
الاتصال
عبر القناة
الآمنة،
ويُجرى
اتصال إما
بـ host
المنفذ
hostport ، أو
مقبس Unix remote_socket
، من
الحاسوب
البعيد.
يمكن أيضاً تحديد عمليات تمرير المنافذ في ملف الضبط. يمكن للمستخدم الخارق فقط تمرير المنافذ ذات الامتيازات. يمكن تحديد عناوين IPv6 عن طريق حصر العنوان بين قوسين مربعين.
مبدئياً، يُربط المنفذ المحلي وفقاً لإعداد
GatewayPorts. ومع ذلك، يمكن استخدام bind_address صريح لربط الاتصال بعنوان محدد. يشير bind_address بـ «localhost» إلى أن منفذ الاستماع مربوط للاستخدام المحلي فقط، بينما يشير العنوان الفارغ أو «*» إلى أن المنفذ يجب أن يكون متاحاً من جميع الواجهات. -llogin_name- يحدد المستخدم للولوج به إلى الحاسوب البعيد. يمكن أيضاً تحديد هذا لكل مضيف على حدة في ملف الضبط.
-M- يضع عميل
sshفي وضع «الرئيس» (master) لمشاركة الاتصال. تكرار خيارات-Mيضعsshفي وضع «الرئيس» ولكن مع طلب تأكيد باستخدام ssh-askpass(1) قبل كل عملية تغير حالة التجميع (مثلاً فتح جلسة جديدة). راجع وصفControlMasterفي ssh_config(5) للتفاصيل. -mmac_spec- قائمة
خوارزميات
MAC (رمز
استيثاق
الرسائل)
مفصولة
بفاصلة،
ومحددة حسب
الأفضلية.
انظر
الكلمة
المفتاحية
MACsفي ssh_config(5) لمزيد من المعلومات. -N- عدم تنفيذ
أمر بعيد.
هذا مفيد
لمجرد
تمرير
المنافذ.
راجع وصف
SessionTypeفي ssh_config(5) للتفاصيل. -n- يعيد توجيه
المدخلات
القياسية
من /dev/null (في
الواقع،
يمنع
القراءة من
المدخلات
القياسية).
يجب
استخدام
هذا عند
تشغيل
sshفي الخلفية. خدعة شائعة هي استخدام هذا لتشغيل برامج X11 على حاسوب بعيد. على سبيل المثال،ssh -n shadows.cs.hut.fi emacs &سيبدأ emacs على shadows.cs.hut.fi، وسيُمرر اتصال X11 آلياً عبر قناة معماة. سيُوضع برنامجsshفي الخلفية. (لا يعمل هذا إذا احتاجsshلطلب كلمة مرور أو عبارة مرور؛ انظر أيضاً خيار-f). راجع وصفStdinNullفي ssh_config(5) للتفاصيل. -Octl_cmd- التحكم في
عملية
رئيسة
لتعدد
الإرسال
للاتصال
النشط. عند
تحديد
الخيار
-O، يتم تفسير الوسيطة ctl_cmd وتمريرها إلى العملية الرئيسة. الأوامر الصالحة هي: “check” (التحقق من أن العملية الرئيسة قيد التشغيل)، “conninfo” (الإبلاغ عن معلومات حول الاتصال الرئيس)، “channels” (الإبلاغ عن معلومات حول القنوات المفتوحة)، “forward” (طلب إعادة التوجيه دون تنفيذ الأمر)، “cancel” (إلغاء عمليات إعادة التوجيه)، “proxy” (الاتصال بعملية رئيسة متعددة الإرسال قيد التشغيل في وضع الوكيل)، “exit” (طلب من العملية الرئيسة الخروج)، و “stop” (طلب من العملية الرئيسة التوقف عن قبول المزيد من طلبات التعدد). -oخيار- يمكن
استخدامه
لإعطاء
خيارات
بالتنسيق
المستخدم
في ملف
الضبط. هذا
مفيد
لتحديد
خيارات ليس
لها علم
منفصل في
سطر
الأوامر.
للحصول على
تفاصيل
كاملة عن
الخيارات
المدرجة
أدناه
وقيمها
الممكنة،
انظر
ssh_config(5).
- AddKeysToAgent
- AddressFamily
- BatchMode
- BindAddress
- BindInterface
- CASignatureAlgorithms
- CanonicalDomains
- CanonicalizeFallbackLocal
- CanonicalizeHostname
- CanonicalizeMaxDots
- CanonicalizePermittedCNAMEs
- CertificateFile
- ChannelTimeout
- CheckHostIP
- Ciphers
- ClearAllForwardings
- الضغط
- ConnectTimeout
- ConnectionAttempts
- ControlMaster
- ControlPath
- ControlPersist
- DynamicForward
- EnableEscapeCommandline
- EnableSSHKeysign
- EscapeChar
- ExitOnForwardFailure
- FingerprintHash
- ForkAfterAuthentication
- ForwardAgent
- ForwardX11
- ForwardX11Timeout
- ForwardX11Trusted
- GSSAPIAuthentication
- GSSAPIDelegateCredentials
- GatewayPorts
- GlobalKnownHostsFile
- HashKnownHosts
- Host
- HostKeyAlgorithms
- HostKeyAlias
- HostbasedAcceptedAlgorithms
- HostbasedAuthentication
- Hostname
- IPQoS
- IdentitiesOnly
- IdentityAgent
- IdentityFile
- IgnoreUnknown
- Include
- KbdInteractiveAuthentication
- KbdInteractiveDevices
- KexAlgorithms
- KnownHostsCommand
- LocalCommand
- LocalForward
- LogLevel
- LogVerbose
- MACs
- NoHostAuthenticationForLocalhost
- NumberOfPasswordPrompts
- ObscureKeystrokeTiming
- PKCS11Provider
- PasswordAuthentication
- PermitLocalCommand
- PermitRemoteOpen
- Port
- PreferredAuthentications
- ProxyCommand
- ProxyJump
- ProxyUseFdpass
- PubkeyAcceptedAlgorithms
- PubkeyAuthentication
- RekeyLimit
- RemoteCommand
- RemoteForward
- RequestTTY
- RequiredRSASize
- RevokedHostKeys
- SecurityKeyProvider
- SendEnv
- ServerAliveCountMax
- ServerAliveInterval
- SessionType
- SetEnv
- StdinNull
- StreamLocalBindMask
- StreamLocalBindUnlink
- StrictHostKeyChecking
- SyslogFacility
- TCPKeepAlive
- Tag
- Tunnel
- TunnelDevice
- UpdateHostKeys
- User
- UserKnownHostsFile
- VerifyHostKeyDNS
- VisualHostKey
- XAuthLocation
-Ptag- يحدد اسم
وسم يمكن
استخدامه
لاختيار
التكوين في
ssh_config(5).
راجع
الكلمتين
المفتاحيتين
TagوMatchفي ssh_config(5) لمزيد من المعلومات. -pport- المنفذ المراد الاتصال به على المضيف البعيد. يمكن تحديد ذلك لكل مضيف في ملف التكوين.
-Qquery_option- يستعلم عن
الخوارزميات
التي
تدعمها
إحدى
الميزات
التالية:
cipher
(خوارزميات
التعمية
المتناظرة
المدعومة)،
cipher-auth
(خوارزميات
التعمية
المتناظرة
التي تدعم
التعمية
الموثقة)،
help
(عبارات
الاستعلام
المدعومة
للاستخدام
مع العلامة
-Q) ، mac (رموز سلامة الرسائل المدعومة)، kex (خوارزميات تبادل المفاتيح)، key (أنواع المفاتيح)، key-ca-sign (خوارزميات توقيع CA الصالحة للشهادات)، key-cert (أنواع مفاتيح الشهادات)، key-plain (أنواع المفاتيح غير المعتمدة على شهادات)، key-sig (جميع أنواع المفاتيح وخوارزميات التوقيع)، protocol-version (إصدارات بروتوكول SSH المدعومة)، و sig (خوارزميات التوقيع المدعومة). بدلاً من ذلك، يمكن استخدام أي كلمة مفتاحية من ssh_config(5) أو sshd_config(5) تقبل قائمة خوارزميات كاسم مستعار لـ query_option المقابل. -q- الوضع الهادئ. يتسبب في كتم معظم رسائل التحذير والتشخيص.
-R[bind_address:]port:host:hostport-R[bind_address:]port:local_socket-Rremote_socket:host:hostport-Rremote_socket:local_socket-R[bind_address:]port- يحدد أن
الاتصالات
بمنفذ TCP
المعطى أو
مقبس Unix على
المضيف
البعيد
(الخادم)
سيُعاد
توجيهها
إلى الجانب
المحلي.
يعمل هذا عن طريق تخصيص مقبس للاستماع إما لمنفذ TCP port أو لمقبس Unix على الجانب البعيد. كلما أُجري اتصال بهذا المنفذ أو مقبس Unix، يُعاد توجيه الاتصال عبر القناة الآمنة، ويُجرى اتصال من الجهاز المحلي بإما وجهة صريحة محددة بـ host والمنفذ hostport ، أو local_socket ، أو، إذا لم تُحدد وجهة صريحة، سيعمل
sshكوكيل SOCKS 4/5 ويعيد توجيه الاتصالات إلى الوجهات التي يطلبها عميل SOCKS البعيد.يمكن أيضاً تحديد توجيه المنافذ في ملف التكوين. لا يمكن توجيه المنافذ المميزة إلا عند تسجيل الدخول كجذر (root) على الجهاز البعيد. يمكن تحديد عناوين IPv6 عن طريق وضع العنوان بين قوسين مربعين.
مبدئياً، ستُربط مقابس استماع TCP على الخادم بواجهة الحلقة الارتدادية (loopback) فقط. يمكن تجاوز ذلك بتحديد bind_address. تشير قيمة bind_address فارغة، أو العنوان ‘
*’ ، إلى أن المقبس البعيد يجب أن يستمع على كافة الواجهات. لن ينجح تحديد bind_address بعيد إلا إذا كان خيارGatewayPortsمفعلاً في الخادم (راجع sshd_config(5)).إذا كانت وسيطة port هي ‘
0’ ، فسيُخصص منفذ الاستماع ديناميكياً على الخادم ويُبلغ به العميل وقت التشغيل. عند استخدامه مع-O forward، سيُطبع المنفذ المخصص في المخرج القياسي. -Sctl_path- يحدد موقع
مقبس
التحكم
لمشاركة
الاتصال،
أو السلسلة
“none” لتعطيل
مشاركة
الاتصال.
راجع وصف
ControlPathوControlMasterفي ssh_config(5) للتفاصيل. -s- يمكن
استخدامه
لطلب
استدعاء
نظام فرعي
على النظام
البعيد.
تسهل
الأنظمة
الفرعية
استخدام SSH
كوسيلة نقل
آمنة
لتطبيقات
أخرى (مثل
sftp(1)).
يُحدد
النظام
الفرعي
كأمر بعيد.
راجع وصف
SessionTypeفي ssh_config(5) للتفاصيل. -T- تعطيل تخصيص الطرفية الوهمية.
-t- فرض تخصيص
طرفية
وهمية. يمكن
استخدام
هذا لتنفيذ
برامج
عشوائية
تعتمد على
الشاشة على
جهاز بعيد،
وهو أمر
مفيد جداً،
مثلاً عند
تنفيذ
خدمات
القوائم.
خيارات
-tالمتعددة تفرض تخصيص tty، حتى لو لم يكن لـsshأي tty محلي. -V- اعرض رقم الإصدار واخرج.
-v- الوضع
المسهب.
يجعل
sshيطبع رسائل تنقيح حول تقدمه. وهذا مفيد في تنقيح مشاكل الاتصال، والاستيثاق، والتكوين. خيارات-vالمتعددة تزيد الإسهاب. الحد الأقصى هو 3. -Whost:port- يطلب توجيه
الدخل
والخرج
القياسي في
العميل إلى
host على
port عبر
القناة
الآمنة.
يتضمن ذلك
-N، و-T، وExitOnForwardFailureوClearAllForwardings، بالرغم من إمكانية تجاوز هذه الخيارات في ملف التكوين أو باستخدام خيارات سطر الأوامر-o. -wlocal_tun[:remote_tun]- يطلب توجيه
جهاز النفق
باستخدام
أجهزة
tun(4)
المحددة
بين العميل
(local_tun)
والخادم
(remote_tun).
يمكن تحديد الأجهزة بواسطة معرف رقمي أو الكلمة المفتاحية “any” ، والتي تستخدم جهاز النفق المتاح التالي. إذا لم يُحدد remote_tun ، فإنه يُضبط مبدئيًا على “any”. انظر أيضًا التوجيهين
TunnelوTunnelDeviceفي ssh_config(5).إذا لم يُضبط توجيه
Tunnel، فسيُضبط على وضع النفق المبدئي، وهو “point-to-point”. إذا رُغب في وضع توجيهTunnelمختلف، فيجب تحديده قبل-w. -X- يُفعل
توجيه X11.
يمكن أيضاً
تحديد ذلك
لكل مضيف في
ملف
التكوين.
ينبغي تفعيل تمرير X11 بحذر. يمكن للمستخدمين الذين لديهم القدرة على تجاوز أذونات الملفات على المضيف البعيد (لقاعدة بيانات تخويل X الخاصة بالمستخدم) الوصول إلى عرض X11 المحلي من خلال الاتصال الممرر. قد يتمكن المهاجم حينها من القيام بأنشطة مثل مراقبة ضغطات المفاتيح.
لهذا السبب، يخضع تمرير X11 لقيود ملحق X11 SECURITY مبدئيًا. راجع خيار
ssh-YوتوجيهForwardX11Trustedفي ssh_config(5) لمزيد من المعلومات. -x- يعطل توجيه X11.
-Y- يُفعل توجيه X11 الموثوق. لا تخضع توجيهات X11 الموثوقة لضوابط ملحق X11 SECURITY.
-y- إرسال معلومات السجل باستخدام وحدة نظام syslog(3). تُرسل هذه المعلومات مبدئيًا إلى stderr.
قد يحصل
ssh
إضافيًا
على بيانات
الضبط من
ملف ضبط لكل
مستخدم
وملف ضبط
على مستوى
النظام.
توصف صيغة
الملف
وخيارات
الضبط في
ssh_config(5).
الاستيثاق
يدعم عميل OpenSSH SSH بروتوكول SSH الإصدار 2.
الطرق
المتاحة
للاستيثاق
هي:
الاستيثاق
القائم على
GSSAPI،
والاستيثاق
القائم على
المضيف،
والاستيثاق
بالمفتاح
العام،
والاستيثاق
التفاعلي
عبر لوحة
المفاتيح،
والاستيثاق
بكلمة السر.
تُجرب طرق
الاستيثاق
بالترتيب
المحدد
أعلاه، وإن
كان يمكن
استخدام
PreferredAuthentications
لتغيير
الترتيب
المبدئي.
يعمل الاستيثاق القائم على المضيف كما يلي: إذا كان الحاسوب الذي يسجل المستخدم دخوله منه مدرجًا في /etc/hosts.equiv أو /etc/ssh/shosts.equiv على الحاسوب البعيد، وكان المستخدم ليس root وأسماء المستخدمين هي نفسها في كلا الجانبين، أو إذا كانت الملفات ~/.rhosts أو ~/.shosts موجودة في دليل منزل المستخدم على الحاسوب البعيد وتحتوي على سطر يتضمن اسم حاسوب العميل واسم المستخدم على ذلك الحاسوب، يُنظر في أمر تسجيل دخول المستخدم. إضافة إلى ذلك، يجب أن يكون الخادم قادرًا على التحقق من مفتاح مضيف العميل (انظر وصف /etc/ssh/ssh_known_hosts و ~/.ssh/known_hosts ، أدناه) للسماح بتسجيل الدخول. تسد طريقة الاستيثاق هذه الثغرات الأمنية الناتجة عن انتحال IP، وانتحال DNS، وانتحال التوجيه. [ملاحظة للمسؤول: /etc/hosts.equiv و ~/.rhosts وبروتوكول rlogin/rsh بشكل عام، هي غير آمنة بطبيعتها وينبغي تعطيلها إذا رُغب في الأمن.]
يعمل
الاستيثاق
بالمفتاح
العام كما
يلي: يعتمد
المخطط على
تعمية
المفتاح
العام،
باستخدام
أنظمة
تعمية حيث
يتم
التعمية
وفك
التعمية
باستخدام
مفاتيح
منفصلة،
ومن غير
المجدي
اشتقاق
مفتاح فك
التعمية من
مفتاح
التعمية.
الفكرة هي
أن كل
مستخدم
ينشئ زوج
مفاتيح
عام/خاص
لأغراض
الاستيثاق.
يعرف
الخادم
المفتاح
العام،
والمستخدم
فقط يعرف
المفتاح
الخاص. ينفذ
ssh
بروتوكول
الاستيثاق
بالمفتاح
العام
آليًا،
باستخدام
خوارزميات
ECDSA أو Ed25519 أو RSA.
يسرد
الملف
~/.ssh/authorized_keys
المفاتيح
العامة
المسموح
لها بتسجيل
الدخول.
عندما يسجل
المستخدم
دخوله،
يخبر
برنامج ssh
الخادم
بزوج
المفاتيح
الذي يرغب
في
استخدامه
للاستيثاق.
يثبت
العميل أن
لديه حق
الوصول إلى
المفتاح
الخاص
ويتحقق
الخادم من
أن المفتاح
العام
المقابل
مخول بقبول
الحساب.
قد يخبر
الخادم
العميل
بالأخطاء
التي منعت
الاستيثاق
بالمفتاح
العام من
النجاح بعد
اكتمال
الاستيثاق
باستخدام
طريقة
مختلفة.
يمكن عرض
هذه
الأخطاء
بزيادة
LogLevel إلى
DEBUG أو
أعلى (على
سبيل
المثال
باستخدام
علامة -v).
ينشئ المستخدم زوج المفاتيح الخاص به عن طريق تشغيل ssh-keygen(1). سيخزن هذا المفتاح الخاص في ~/.ssh/id_ecdsa (ECDSA)، أو ~/.ssh/id_ecdsa_sk (ECDSA مستضاف على الموثق)، أو ~/.ssh/id_ed25519 (Ed25519)، أو ~/.ssh/id_ed25519_sk (Ed25519 مستضاف على الموثق)، أو ~/.ssh/id_rsa (RSA) ويخزن المفتاح العام في ~/.ssh/id_ecdsa.pub (ECDSA)، أو ~/.ssh/id_ecdsa_sk.pub (ECDSA مستضاف على الموثق)، أو ~/.ssh/id_ed25519.pub (Ed25519)، أو ~/.ssh/id_ed25519_sk.pub (Ed25519 مستضاف على الموثق)، أو ~/.ssh/id_rsa.pub (RSA) في دليل منزل المستخدم. يجب على المستخدم بعد ذلك نسخ المفتاح العام إلى ~/.ssh/authorized_keys في دليل منزله على الحاسوب البعيد. يقابل ملف authorized_keys ملف ~/.rhosts التقليدي، ويحتوي على مفتاح واحد في كل سطر، وإن كانت الأسطر يمكن أن تكون طويلة جدًا. بعد ذلك، يمكن للمستخدم تسجيل الدخول دون إعطاء كلمة السر.
يتوفر نوع مختلف من الاستيثاق بالمفتاح العام في شكل استيثاق بالشهادة: فبدلاً من مجموعة من المفاتيح العامة/الخاصة، تُستخدم شهادات موقعة. يمتاز هذا بإمكانية استخدام سلطة شهادات موثوقة واحدة بدلاً من العديد من المفاتيح العامة/الخاصة. انظر قسم CERTIFICATES في ssh-keygen(1) لمزيد من المعلومات.
قد تكون
الطريقة
الأكثر
ملاءمة
لاستخدام
الاستيثاق
بالمفتاح
العام أو
الشهادة هي
استخدام
وكيل
استيثاق.
انظر
ssh-agent(1) و
(اختياريًا)
توجيه
AddKeysToAgent في
ssh_config(5)
لمزيد من
المعلومات.
يعمل الاستيثاق التفاعلي عبر لوحة المفاتيح كما يلي: يرسل الخادم نص "تحدٍ" عشوائي ويطلب ردًا، وربما لعدة مرات. تشمل أمثلة الاستيثاق التفاعلي عبر لوحة المفاتيح استيثاق BSD (انظر login.conf(5)) و PAM (بعض أنظمة non-OpenBSD).
أخيرًا،
إذا فشلت
طرق
الاستيثاق
الأخرى،
يطلب ssh
من
المستخدم
كلمة سر.
تُرسل كلمة
المرور إلى
المضيف
البعيد
للتحقق
منها؛ ومع
ذلك، بما أن
جميع
الاتصالات
معمية، فلا
يمكن رؤية
كلمة السر
من قبل شخص
يتنصت على
الشبكة.
يصون ssh
آليًا
ويتحقق من
قاعدة
بيانات
تحتوي على
تعريف
لجميع
المضيفين
الذين
استخدم
معهم من قبل.
تُخزن
مفاتيح
المضيف في
~/.ssh/known_hosts في
دليل منزل
المستخدم.
إضافة إلى
ذلك، يُفحص
الملف
/etc/ssh/ssh_known_hosts
آليًا
للمضيفين
المعروفين.
تُضاف أي
مضيفات
جديدة
آليًا إلى
ملف
المستخدم.
إذا تغير
تعريف مضيف
ما، يحذر
ssh من هذا
ويعطل
الاستيثاق
بكلمة السر
لمنع
انتحال
الخادم أو
هجمات رجل
في
المنتصف،
والتي قد
تُستخدم
بخلاف ذلك
للالتفاف
على
التعمية.
يمكن
استخدام
خيار
StrictHostKeyChecking
للتحكم في
عمليات
تسجيل
الدخول إلى
الحواسيب
التي يكون
مفتاح
مضيفها غير
معروف أو قد
تغير.
عندما يقبل الخادم هوية المستخدم، فإنه إما ينفذ الأمر المعطى في جلسة غير تفاعلية أو، إذا لم يُحدد أي أمر، يسجل الدخول إلى الحاسوب ويمنح المستخدم صدفة عادية كجلسة تفاعلية. جميع الاتصالات مع الأمر البعيد أو الصدفة ستُعمى آليًا.
إذا طُلبت
جلسة
تفاعلية،
فإن ssh
سيطلب
مبدئيًا
فقط طرفية
زائفة (pty)
للجلسات
التفاعلية
عندما يكون
لدى العميل
واحدة. يمكن
استخدام
العلامتين
-T و -t
لتجاوز هذا
السلوك.
إذا خُصصت طرفية زائفة، يجوز للمستخدم استخدام محارف الهروب المذكورة أدناه.
إذا لم تُخصص طرفية زائفة، فستكون الجلسة شفافة ويمكن استخدامها لنقل البيانات الثنائية بشكل موثوق. في معظم الأنظمة، سيؤدي ضبط محرف الهروب إلى “none” أيضًا إلى جعل الجلسة شفافة حتى لو استُخدمت tty.
تنتهي الجلسة عندما يخرج الأمر أو الصدفة على الحاسوب البعيد وتُغلق جميع اتصالات X11 و TCP.
محارف الهروب
عندما
تُطلب
طرفية
زائفة،
يدعم ssh
عددًا من
الوظائف من
خلال
استخدام
محرف هروب.
يمكن
إرسال محرف
تلدة واحد
كـ ~~ أو
باتباع
التلدة
بمحرف آخر
غير تلك
الموضحة
أدناه. يجب
أن يتبع
محرف
الهروب
دائمًا
سطرًا
جديدًا
ليُفسر على
أنه خاص.
يمكن تغيير
محرف
الهروب في
ملفات
الضبط
باستخدام
توجيه
الضبط EscapeChar
أو في سطر
الأوامر
بواسطة
الخيار
-e.
عمليات
الهروب
المدعومة
(بافتراض
المبدئي
‘~’) هي:
~.- قطع الاتصال.
~^Z- وضع
sshفي الخلفية. ~#- سرد الاتصالات الممررة.
~&- وضع
sshفي الخلفية عند تسجيل الخروج أثناء انتظار إنهاء الاتصال الممرر / جلسات X11. ~?- عرض قائمة بمحارف الهروب.
~B- إرسال BREAK إلى النظام البعيد (مفيد فقط إذا كان الطرف الآخر يدعمه).
~C- فتح سطر
الأوامر.
يسمح هذا
حاليًا
بإضافة
عمليات
تمرير
المنافذ
باستخدام
الخيارات
-Lو-Rو-D(انظر أعلاه). كما يسمح بإلغاء عمليات تمرير المنافذ الحالية باستخدام-KL[bind_address:]port للمحلي، و-KR[bind_address:]port للبعيد و-KD[bind_address:]port لعمليات تمرير المنافذ الديناميكية. يسمح!command للمستخدم بتنفيذ أمر محلي إذا كان خيارPermitLocalCommandمفعلًا في ssh_config(5). تتوفر مساعدة أساسية باستخدام الخيار-h. ~I- إظهار معلومات حول اتصال SSH الحالي.
~R- طلب إعادة تبادل المفاتيح للاتصال (مفيد فقط إذا كان الطرف الآخر يدعمه).
~V- تقليل
الإسهاب
(
LogLevel) عند كتابة الأخطاء إلى stderr. ~v- زيادة
الإسهاب
(
LogLevel) عند كتابة الأخطاء إلى stderr.
تمرير TCP
يمكن تحديد تمرير اتصالات TCP العشوائية عبر قناة آمنة إما في سطر الأوامر أو في ملف الضبط. أحد التطبيقات الممكنة لتمرير TCP هو الاتصال الآمن بخادم بريد؛ والآخر هو اختراق الجدران النارية.
في المثال
أدناه،
ننظر في
تعمية
الاتصالات
لعميل IRC،
على الرغم
من أن خادم IRC
الذي يتصل
به لا يدعم
مباشرة
الاتصالات
المعمية.
يعمل هذا
كما يلي:
يتصل
المستخدم
بالمضيف
البعيد
باستخدام
ssh ، مع
تحديد
المنافذ
التي
ستُستخدم
لتمرير
الاتصال.
بعد ذلك
يمكن بدء
البرنامج
محليًا،
وسيقوم ssh
بتعمية
وتمرير
الاتصال
إلى الخادم
البعيد.
يقوم المثال التالي بنفق جلسة IRC من العميل إلى خادم IRC في “server.example.com” ، والانضمام إلى القناة “#users” ، باللقب “pinky” ، باستخدام منفذ IRC القياسي، 6667:
$ ssh -f -L 6667:localhost:6667 server.example.com sleep 10 $ irc -c '#users' pinky IRC/127.0.0.1
خيار -f
يضع ssh في
الخلفية
والأمر
البعيد “sleep 10”
محدد
للسماح
بمقدار من
الوقت (10
ثوانٍ، في
المثال)
لبدء
البرنامج
الذي
سيستخدم
النفق. إذا
لم تُجرَ أي
اتصالات
خلال الوقت
المحدد،
فسيخرج
ssh.
تمرير X11
إذا ضُبط
متغير ForwardX11
على “yes” (أو
انظر وصف
خيارات -X
و -x و -Y
أعلاه) وكان
المستخدم
يستخدم X11
(متغير
البيئة
DISPLAY
مضبوط)،
فسيُمرر
الاتصال
بعرض X11
آليًا إلى
الجانب
البعيد
بطريقة
تجعل أي
برامج X11
تبدأ من
الصدفة (أو
الأمر) تمر
عبر القناة
المعمية،
وسيجري
الاتصال
بخادم X
الحقيقي من
الحاسوب
المحلي. يجب
على
المستخدم
عدم ضبط
DISPLAY
يدويًا.
يمكن ضبط
تمرير
اتصالات X11
في سطر
الأوامر أو
في ملفات
الضبط.
ستشير
قيمة DISPLAY
التي ضبطها
ssh إلى
حاسوب
الخادم،
ولكن برقم
عرض أكبر من
الصفر. هذا
أمر طبيعي،
ويحدث لأن
ssh ينشئ
خادم X
“وكيل” على
حاسوب
الخادم
لتمرير
الاتصالات
عبر القناة
المعمية.
سيقوم
ssh أيضًا
بإعداد
بيانات Xauthority
آليًا على
حاسوب
الخادم.
لهذا
الغرض،
سيولد كعكة
تخويل
عشوائية،
ويخزنها في
Xauthority على
الخادم،
ويتحقق من
أن أي
اتصالات
ممررة تحمل
هذه الكعكة
ويستبدلها
بالكعكة
الحقيقية
عند فتح
الاتصال. لا
تُرسل كعكة
الاستيثاق
الحقيقية
أبدًا إلى
حاسوب
الخادم (ولا
تُرسل أي
كعكات بشكل
صريح).
إذا ضُبط
متغير
ForwardAgent على
“yes” (أو انظر
وصف خيارات
-A و -a
أعلاه) وكان
المستخدم
يستخدم
وكيل
استيثاق،
فسيُمرر
الاتصال
بالوكيل
آليًا إلى
الجانب
البعيد.
التحقق من مفاتيح المضيف
عند
الاتصال
بخادم لأول
مرة، تُعرض
بصمة
للمفتاح
العام
للخادم
للمستخدم
(ما لم يكن
الخيار
StrictHostKeyChecking قد
عُطّل). يمكن
تحديد
البصمات
باستخدام
ssh-keygen(1):
$ ssh-keygen -l -f
/etc/ssh/ssh_host_rsa_keyإذا كانت
البصمة
معروفة
بالفعل،
فيمكن
مطابقتها
ويمكن قبول
المفتاح أو
رفضه. إذا
كانت
البصمات
القديمة (MD5)
فقط للخادم
متاحة،
فيمكن
استخدام
خيار -E في
ssh-keygen(1)
لخفض
خوارزمية
البصمة
للمطابقة.
نظرًا
لصعوبة
مقارنة
مفاتيح
المضيف
بمجرد
النظر إلى
سلاسل
البصمات،
هناك أيضًا
دعم
لمقارنة
مفاتيح
المضيف
بصريًا،
باستخدام
random art.
بضبط خيار
VisualHostKey على
“yes” ، يُعرض
رسم ASCII صغير
في كل تسجيل
دخول إلى
خادم، بغض
النظر عما
إذا كانت
الجلسة
نفسها
تفاعلية أم
لا. من خلال
تعلم النمط
الذي ينتجه
خادم
معروف،
يمكن
للمستخدم
بسهولة
معرفة أن
مفتاح
المضيف قد
تغير عندما
يُعرض نمط
مختلف
تمامًا. ومع
ذلك، لأن
هذه
الأنماط
ليست
قاطعة، فإن
النمط الذي
يبدو
مشابهًا
للنمط
المتذكر
يعطي فقط
احتمالية
جيدة بأن
مفتاح
المضيف هو
نفسه، وليس
دليلاً
مضمونًا.
للحصول على قائمة بالبصمات مع فنها العشوائي لجميع المضيفين المعروفين، يمكن استخدام سطر الأوامر التالي:
$ ssh-keygen -lv -f
~/.ssh/known_hostsإذا كانت البصمة غير معروفة، تتوفر طريقة بديلة للتحقق: بصمات SSH المتحقق منها بواسطة DNS. يُضاف سجل مورد (RR) إضافي، SSHFP، إلى ملف المنطقة ويتمكن العميل المتصل من مطابقة البصمة مع بصمة المفتاح المقدم.
في هذا المثال، نقوم بتوصيل عميل بخادم، “host.example.com”. ينبغي أولاً إضافة سجلات موارد SSHFP إلى ملف المنطقة لـ host.example.com:
$ ssh-keygen -r host.example.com.
سيتعين إضافة أسطر الإخراج إلى ملف المنطقة. للتحقق من أن المنطقة تجيب على استعلامات البصمة:
$ dig -t SSHFP
host.example.comأخيرًا يتصل العميل:
$ ssh -o "VerifyHostKeyDNS ask" host.example.com [...] Matching host key fingerprint found in DNS. Are you sure you want to continue connecting (yes/no)?
انظر خيار
VerifyHostKeyDNS في
ssh_config(5)
لمزيد من
المعلومات.
الشبكات الخاصة الافتراضية القائمة على SSH
يحتوي
ssh على
دعم لنفق
الشبكة
الخاصة
الافتراضية
(VPN) باستخدام
جهاز
الشبكة
الزائف
tun(4) ،
مما يسمح
بربط
شبكتين
بشكل آمن.
يتحكم خيار
ضبط
sshd_config(5)
المسمى
PermitTunnel فيما
إذا كان
الخادم
يدعم هذا،
وبأي مستوى
(حركة مرور
الطبقة 2 أو 3).
سيقوم المثال التالي بتوصيل شبكة العميل 10.0.50.0/24 مع الشبكة البعيدة 10.0.99.0/24 باستخدام اتصال نقطة إلى نقطة من 10.1.1.1 إلى 10.1.1.2، بشرط أن يسمح خادم SSH الذي يعمل على البوابة إلى الشبكة البعيدة، في 192.168.1.15، بذلك.
على العميل:
# ssh -f -w 0:1 192.168.1.15 true # ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252 # route add 10.0.99.0/24 10.1.1.2
على الخادم:
# ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252 # route add 10.0.50.0/24 10.1.1.1
يمكن ضبط
وصول
العميل
بشكل أدق
عبر ملف
/root/.ssh/authorized_keys
(انظر أدناه)
وخيار خادم
PermitRootLogin.
سيسمح
الإدخال
التالي
بالاتصالات
على جهاز
tun(4) رقم 1
من
المستخدم
“jane” وعلى
جهاز tun رقم 2
من
المستخدم
“john” ، إذا
ضُبط PermitRootLogin
على “forced-commands-only”:
tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... jane tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... john
بما أن الإعداد القائم على SSH يستلزم قدرًا كبيرًا من العبء الإضافي، فقد يكون أكثر ملاءمة للإعدادات المؤقتة، مثل شبكات VPN اللاسلكية. توفر أدوات مثل ipsecctl(8) و isakmpd(8) شبكات VPN أكثر ديمومة بشكل أفضل.
البيئة
سيقوم
ssh عادة
بضبط
متغيرات
البيئة
التالية:
DISPLAY- يشير متغير
DISPLAYإلى موقع خادم X11. يُضبط آليًا بواسطةsshليشير إلى قيمة من الصيغة “hostname:n” ، حيث يشير “hostname” إلى المضيف الذي تعمل فيه الصدفة، و ‘n’ هو عدد صحيح ≥ 1. يستخدمsshهذه القيمة الخاصة لتمرير اتصالات X11 عبر القناة الآمنة. ينبغي للمستخدم عادة عدم ضبطDISPLAYصراحة، لأن ذلك سيجعل اتصال X11 غير آمن (وسيتطلب من المستخدم نسخ أي كعكات تخويل مطلوبة يدويًا). HOME- مضبوط على مسار دليل منزل المستخدم.
LOGNAME- مرادف لـ
USER؛ يُضبط للتوافق مع الأنظمة التي تستخدم هذا المتغير. MAIL- مضبوط على مسار صندوق بريد المستخدم.
PATH- مضبوط على
PATHالمبدئي، كما هو محدد عند تجميعssh. SSH_ASKPASS- إذا احتاج
sshإلى عبارة مرور، فسيقرأ عبارة المرور من الطرفية الحالية إذا شُغل من طرفية. إذا لم يكن لدىsshطرفية مرتبطة به ولكن ضُبطDISPLAYوSSH_ASKPASS، فإنه سينفذ البرنامج المحدد بواسطةSSH_ASKPASSويفتح نافذة X11 لقراءة عبارة المرور. هذا مفيد بشكل خاص عند استدعاءsshمن .xsession أو سكريبت ذي صلة. (لاحظ أنه في بعض الحواسيب قد يكون من الضروري إعادة توجيه الإدخال من /dev/null لجعل هذا يعمل.) SSH_ASKPASS_REQUIRE- تتيح
تحكمًا
أكبر في
استخدام
برنامج askpass.
إذا ضُبط
هذا
المتغير
على “never” فلن
يحاول
sshاستخدامه أبدًا. وإذا ضُبط على “prefer” ، فسيفضلsshاستخدام برنامج askpass بدلًا من TTY عند طلب كلمات السر. وأخيرًا، إذا ضُبط المتغير على “force” ، فسيُستخدم برنامج askpass لجميع عمليات إدخال عبارات المرور بغض النظر عما إذا كانDISPLAYمضبوطًا أم لا. SSH_AUTH_SOCK- يحدد مسار مقبس UNIX-domain مستخدم للتواصل مع العميل.
SSH_CONNECTION- يعرّف طرفي العميل والخادم للاتصال. يحتوي المتغير على أربع قيم مفصولة بمسافات: عنوان IP الخاص بالعميل، ورقم منفذ العميل، وعنوان IP الخاص بالخادم، ورقم منفذ الخادم.
SSH_ORIGINAL_COMMAND- يحتوي هذا المتغير على سطر الأوامر الأصلي في حال نُفذ أمر مفروض. يمكن استخدامه لاستخراج المعاملات الأصلية.
SSH_TTY- يُضبط هذا على اسم tty (المسار إلى الجهاز) المرتبط بالصدفة أو الأمر الحالي. إذا لم تكن للجلسة الحالية tty، فلن يُضبط هذا المتغير.
SSH_TUNNEL- يُضبط اختياريًا بواسطة sshd(8) ليحتوي على أسماء الواجهات المعينة إذا طلب العميل تمرير النفق.
SSH_USER_AUTH- يُضبط اختياريًا بواسطة sshd(8) ، وقد يحتوي هذا المتغير على مسار لملف يسرد طرق الاستيثاق التي استُخدمت بنجاح عند إنشاء الجلسة، بما في ذلك أي مفاتيح عامة استُخدمت.
TZ- يُضبط هذا المتغير للإشارة إلى المنطقة الزمنية الحالية إذا كانت مضبوطة عند بدء تشغيل العفريت (أي أن العفريت يمرر القيمة إلى الاتصالات الجديدة).
USER- مضبوط على اسم المستخدم الذي يسجل دخوله.
بالإضافة
إلى ذلك،
يقرأ ssh
ملف ~/.ssh/environment ،
ويضيف
أسطرًا
بصيغة “VARNAME=value”
إلى البيئة
إذا كان
الملف
موجودًا
وكان
مسموحًا
للمستخدمين
بتغيير
بيئتهم.
لمزيد من
المعلومات،
راجع خيار
PermitUserEnvironment في
sshd_config(5).
الملفات
- ~/.rhosts
- يُستخدم هذا الملف للاستيثاق المستند إلى المضيف (انظر أعلاه). في بعض الحواسيب، قد يحتاج هذا الملف أن يكون قابلاً للقراءة من الجميع إذا كان الدليل المنزلي للمستخدم على قسم NFS، لأن sshd(8) يقرأه كجذر. بالإضافة إلى ذلك، يجب أن يمتلك المستخدم هذا الملف، ويجب ألا تتوفر صلاحيات الكتابة لأي شخص آخر. الأذونات الموصى بها لمعظم الحواسيب هي القراءة/الكتابة للمستخدم، وعدم إمكانية الوصول من قبل الآخرين.
- ~/.shosts
- يستخدم هذا الملف بنفس طريقة .rhosts تمامًا، ولكنه يسمح بالاستيثاق القائم على المضيف دون السماح بتسجيل الدخول باستخدام rlogin/rsh.
- ~/.ssh/
- هذا الدليل هو الموقع المبدئي لجميع معلومات الضبط والاستيثاق الخاصة بالمستخدم. لا يوجد متطلب عام للحفاظ على سرية المحتويات الكاملة لهذا الدليل، ولكن الأذونات الموصى بها هي القراءة/الكتابة/التنفيذ للمستخدم، وعدم إمكانية الوصول من قبل الآخرين.
- ~/.ssh/authorized_keys
- يسرد المفاتيح العامة (ECDSA، Ed25519، RSA) التي يمكن استخدامها لتسجيل الدخول بهذا المستخدم. وُصفت صيغة هذا الملف في صفحة دليل sshd(8). هذا الملف ليس حساسًا للغاية، ولكن الأذونات الموصى بها هي القراءة/الكتابة للمستخدم، وعدم إمكانية الوصول من قبل الآخرين.
- ~/.ssh/config
- هذا هو ملف ضبط المستخدم. وُصفت صيغة الملف وخيارات الضبط في ssh_config(5). وبسبب احتمال إساءة الاستخدام، يجب أن يكون لهذا الملف أذونات صارمة: القراءة/الكتابة للمستخدم، وألا يكون قابلاً للكتابة من قبل الآخرين.
- ~/.ssh/environment
- يحتوي على تعريفات إضافية لمتغيرات البيئة؛ انظر ENVIRONMENT ، أعلاه.
- ~/.ssh/id_ecdsa
- ~/.ssh/id_ecdsa_sk
- ~/.ssh/id_ed25519
- ~/.ssh/id_ed25519_sk
- ~/.ssh/id_rsa
- يحتوي على
المفتاح
الخاص
للاستيثاق.
تحتوي هذه
الملفات
على بيانات
حساسة ويجب
أن تكون
قابلة
للقراءة من
قِبَل
المستخدم
ولكن لا
يمكن
للآخرين
الوصول
إليها
(قراءة/كتابة/تنفيذ).
سيتجاهل
sshببساطة ملف مفتاح خاص إذا كان متاحًا للآخرين. ومن الممكن تحديد عبارة مرور عند توليد المفتاح ستُستخدم لتعمية الجزء الحساس من هذا الملف باستخدام AES-128. - ~/.ssh/id_ecdsa.pub
- ~/.ssh/id_ecdsa_sk.pub
- ~/.ssh/id_ed25519.pub
- ~/.ssh/id_ed25519_sk.pub
- ~/.ssh/id_rsa.pub
- يحتوي على المفتاح العام للاستيثاق. هذه الملفات ليست حساسة ويمكن (ولكن ليس بالضرورة) أن تكون قابلة للقراءة من قِبَل أي شخص.
- ~/.ssh/known_hosts
- يحتوي على قائمة بمفاتيح المضيف لجميع المضيفين الذين سجل المستخدم دخولهم والذين ليسوا موجودين بالفعل في قائمة مفاتيح المضيفين المعروفة على مستوى النظام. راجع sshd(8) لمزيد من التفاصيل حول صيغة هذا الملف.
- ~/.ssh/rc
- تُنفذ
الأوامر في
هذا الملف
بواسطة
sshعند تسجيل دخول المستخدم، مباشرة قبل بدء صدفة المستخدم (أو الأمر). راجع صفحة دليل sshd(8) لمزيد من المعلومات. - /etc/hosts.equiv
- هذا الملف مخصص للاستيثاق المستند إلى المضيف (انظر أعلاه). يجب أن يكون قابلاً للكتابة من قِبَل الجذر (root) فقط.
- /etc/ssh/shosts.equiv
- يستخدم هذا الملف بنفس طريقة hosts.equiv تمامًا، ولكنه يسمح بالاستيثاق القائم على المضيف دون السماح بتسجيل الدخول باستخدام rlogin/rsh.
- /etc/ssh/ssh_config
- ملف الضبط على مستوى النظام. وُصفت صيغة الملف وخيارات الضبط في ssh_config(5).
- /etc/ssh/ssh_host_ecdsa_key
- /etc/ssh/ssh_host_ed25519_key
- /etc/ssh/ssh_host_rsa_key
- تحتوي هذه الملفات على الأجزاء الخاصة من مفاتيح المضيف وتُستخدم للاستيثاق المستند إلى المضيف.
- /etc/ssh/ssh_known_hosts
- قائمة بمفاتيح المضيف المعروفة على مستوى النظام. ينبغي أن يجهز مدير النظام هذا الملف ليحتوي على مفاتيح المضيف العامة لجميع الحواسيب في المؤسسة. ويجب أن يكون قابلاً للقراءة من الجميع. راجع sshd(8) لمزيد من التفاصيل حول صيغة هذا الملف.
- /etc/ssh/sshrc
- تُنفذ
الأوامر في
هذا الملف
بواسطة
sshعند تسجيل دخول المستخدم، مباشرة قبل بدء صدفة المستخدم (أو الأمر). راجع صفحة دليل sshd(8) لمزيد من المعلومات.
حالة الخروج
يخرج ssh
بحالة خروج
الأمر
البعيد أو
بالقيمة 255
في حال حدوث
خطأ.
انظر أيضًا
scp(1) ، sftp(1) ، ssh-add(1) ، ssh-agent(1) ، ssh-keygen(1) ، ssh-keyscan(1) ، tun(4) ، ssh_config(5) ، ssh-keysign(8) ، sshd(8)
المعايير
S. Lehtinen and C. Lonvick, The Secure Shell (SSH) Protocol Assigned Numbers, RFC 4250, يناير 2006.
T. Ylonen and C. Lonvick, The Secure Shell (SSH) Protocol Architecture, RFC 4251, يناير 2006.
T. Ylonen and C. Lonvick, The Secure Shell (SSH) Authentication Protocol, RFC 4252, يناير 2006.
T. Ylonen and C. Lonvick, The Secure Shell (SSH) Transport Layer Protocol, RFC 4253, يناير 2006.
T. Ylonen and C. Lonvick, The Secure Shell (SSH) Connection Protocol, RFC 4254, يناير 2006.
J. Schlyter and W. Griffin, Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints, RFC 4255, يناير 2006.
F. Cusack and M. Forssen, Generic Message Exchange Authentication for the Secure Shell Protocol (SSH), RFC 4256, يناير 2006.
J. Galbraith and P. Remaker, The Secure Shell (SSH) Session Channel Break Extension, RFC 4335, يناير 2006.
M. Bellare, T. Kohno, and C. Namprempre, The Secure Shell (SSH) Transport Layer Encryption Modes, RFC 4344, يناير 2006.
B. Harris, Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol, RFC 4345, يناير 2006.
M. Friedl, N. Provos, and W. Simpson, بروتوكول تبادل مجموعات ديفي-هيلمان لطبقة نقل القشرة الآمنة (SSH), RFC 4419, مارس 2006.
J. Galbraith and R. Thayer, The Secure Shell (SSH) Public Key File Format, RFC 4716, نوفمبر 2006.
D. Stebila and J. Green, Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer, RFC 5656, ديسمبر 2009.
A. Perrig and D. Song, Hash Visualization: a New Technique to improve Real-World Security, 1999, International Workshop on Cryptographic Techniques and E-Commerce (CrypTEC '99).
المؤلفون
OpenSSH هو مشتق من إصدارة ssh 1.2.12 الأصلية والحرة التي كتبها Tatu Ylonen. قام كل من Aaron Campbell و Bob Beck و Markus Friedl و Niels Provos و Theo de Raadt و Dug Song بإزالة العديد من العلل وإعادة إضافة ميزات أحدث وإنشاء OpenSSH. ساهم Markus Friedl بدعم بروتوكول SSH بالإصدارين 1.5 و 2.0.
ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org
| $Mdocdate: 22 ديسمبر 2025 $ | Linux 7.0.8-arch1-1 |