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 ، أو قد يتضمن وسائط إضافية. في حال توفرها، ستُلحق الوسائط بالأمر، مفصولة بمسافات، قبل إرسالها إلى الخادم لتنفيذها.

الخيارات هي كما يلي:

يجبر ssh على استخدام عناوين IPv4 فقط.
يجبر ssh على استخدام عناوين IPv6 فقط.
يفعّل تمرير الاتصالات من وكيل استيثاق مثل ssh-agent(1). يمكن تحديد هذا أيضاً لكل مضيف على حدة في ملف الضبط.

يجب تفعيل تمرير الوكيل بحذر. يمكن للمستخدمين الذين لديهم القدرة على تجاوز أذونات الملفات على المضيف البعيد (لمقبس UNIX-domain الخاص بالوكيل) الوصول إلى الوكيل المحلي عبر الاتصال الممرر. لا يمكن للمهاجم الحصول على مادة المفاتيح من الوكيل، ولكن يمكنه إجراء عمليات على المفاتيح تمكنه من الاستيثاق باستخدام الهويات المحملة في الوكيل. قد يكون استخدام مضيف قفز (انظر -J) بديلاً أكثر أماناً.

يعطل تمرير اتصال وكيل الاستيثاق.
bind_interface
الربط بعنوان bind_interface قبل محاولة الاتصال بالمضيف الوجهة. هذا مفيد فقط في الأنظمة التي تملك أكثر من عنوان واحد.
bind_address
استخدام bind_address على الحاسوب المحلي كعنوان مصدر للاتصال. مفيد فقط في الأنظمة التي تملك أكثر من عنوان واحد.
يطلب ضغط جميع البيانات (بما في ذلك المدخلات القياسية، والمخرجات القياسية، والأخطاء القياسية، وبيانات اتصالات X11 وTCP و UNIX-domain الممررة). خوارزمية الضغط هي نفسها المستخدمة في gzip(1). الضغط مستحب في خطوط المودم والاتصالات البطيئة الأخرى، ولكنه سيؤدي فقط إلى إبطاء الأمور في الشبكات السريعة. يمكن ضبط القيمة المبدئية لكل مضيف على حدة في ملفات الضبط؛ انظر خيار Compression في ssh_config(5).
cipher_spec
يختار مواصفات التعمية لتعمية الجلسة. cipher_spec هي قائمة بالمعميات مفصولة بفاصلة ومرتبة حسب الأفضلية. انظر الكلمة المفتاحية Ciphers في ssh_config(5) لمزيد من المعلومات.
[bind_address:]port
يحدد تمرير منفذ محلي «ديناميكي» على مستوى التطبيق. يعمل هذا عن طريق تخصيص مقبس للاستماع إلى port على الجانب المحلي، وربطه اختيارياً بـ bind_address المحدد. كلما أُجري اتصال بهذا المنفذ، يُمرر الاتصال عبر القناة الآمنة، ثم يُستخدم بروتوكول التطبيق لتحديد مكان الاتصال من الحاسوب البعيد. حالياً يُدعم بروتوكولا SOCKS4 و SOCKS5، وسيعمل ssh كخادم SOCKS. يمكن للمستخدم الجذري (root) فقط تمرير المنافذ ذات الامتيازات. يمكن أيضاً تحديد عمليات تمرير المنافذ الديناميكية في ملف الضبط.

يمكن تحديد عناوين IPv6 عن طريق حصر العنوان بين قوسين مربعين. يمكن للمستخدم الخارق فقط تمرير المنافذ ذات الامتيازات. مبدئياً، يُربط المنفذ المحلي وفقاً لإعداد GatewayPorts. ومع ذلك، يمكن استخدام bind_address صريح لربط الاتصال بعنوان محدد. يشير bind_address بـ «localhost» إلى أن منفذ الاستماع مربوط للاستخدام المحلي فقط، بينما يشير العنوان الفارغ أو «*» إلى أن المنفذ يجب أن يكون متاحاً من جميع الواجهات.

log_file
إلحاق سجلات التنقيح بـ log_file بدلاً من الخطأ القياسي.
escape_char
يضبط محرف الهروب للجلسات التي تستخدم pty (المبدئي: ‘~’). يُتعرف على محرف الهروب فقط في بداية السطر. محرف الهروب متبوعاً بنقطة (‘.’) يغلق الاتصال؛ متبوعاً بـ control-Z يعلق الاتصال؛ ومتبوعاً بنفسه يرسل محرف الهروب مرة واحدة. ضبط المحرف إلى «none» يعطل أي هروب ويجعل الجلسة شفافة تماماً.
configfile
يحدد ملف ضبط بديل لكل مستخدم. إذا أُعطي ملف ضبط في سطر الأوامر، فسيُتجاهل ملف الضبط الخاص بالنظام (/etc/ssh/ssh_config). القيمة المبدئية لملف الضبط لكل مستخدم هي ~/.ssh/config. إذا ضُبط على «none»، فلن تُقرأ أي ملفات ضبط.
يطلب من ssh الانتقال إلى الخلفية قبل تنفيذ الأمر مباشرة. هذا مفيد إذا كان ssh سيطلب كلمات سر أو عبارات مرور، ولكن المستخدم يريده في الخلفية. يتضمن هذا الخيار -n. الطريقة الموصى بها لبدء برامج X11 في موقع بعيد هي باستخدام شيء مثل ssh -f host xterm.

إذا ضُبط خيار الضبط ExitOnForwardFailure على «yes»، فإن العميل الذي بدأ بـ -f سينتظر حتى تُنشأ جميع عمليات تمرير المنافذ البعيدة بنجاح قبل وضع نفسه في الخلفية. راجع وصف ForkAfterAuthentication في ssh_config(5) للتفاصيل.

يجعل ssh يطبع ضبطه بعد تقييم كتل Host و Match ثم يخرج.
يسمح للمضيفين البعيدين بالاتصال بالمنافذ المحلية الممررة. إذا استُخدم في اتصال مُجمّع (multiplexed)، فيجب تحديد هذا الخيار في العملية الرئيسة.
pkcs11
تحديد مكتبة PKCS#11 المشتركة التي يجب أن يستخدمها ssh للتواصل مع رمز PKCS#11 الذي يوفر مفاتيح لاستيثاق المستخدم.
identity_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 بأسماء ملفات الهوية.
destination
الاتصال بالمضيف المستهدف عن طريق إجراء اتصال ssh أولاً بمضيف القفز الموصوف بـ destination ثم إنشاء تمرير TCP إلى الوجهة النهائية من هناك. يمكن تحديد قفزات متعددة مفصولة بفاصلات. يمكن تحديد عناوين IPv6 عن طريق حصر العنوان بين قوسين مربعين. هذا اختصار لتحديد توجيه الضبط ProxyJump. لاحظ أن توجيهات الضبط المتوفرة في سطر الأوامر تنطبق بشكل عام على المضيف الوجهة وليس على أي مضيفات قفز محددة. استخدم ~/.ssh/config لتحديد ضبط مضيفات القفز.
يفعّل الاستيثاق المعتمد على GSSAPI وتمرير (تفويض) بيانات اعتماد GSSAPI إلى الخادم.
يعطل تمرير (تفويض) بيانات اعتماد GSSAPI إلى الخادم.
[bind_address:]port:host:hostport
 
[bind_address:]port:remote_socket
 
local_socket:host:hostport
 
local_socket:remote_socket
يحدد أن الاتصالات بمنفذ TCP المعطى أو مقبس Unix على المضيف المحلي (العميل) يجب تمريرها إلى المضيف والمنفذ المعطيين، أو مقبس Unix، في الجانب البعيد. يعمل هذا عن طريق تخصيص مقبس للاستماع إما لمنفذ TCP port في الجانب المحلي، مربوط اختيارياً بـ bind_address المحدد، أو لمقبس Unix. كلما أُجري اتصال بالمنفذ أو المقبس المحلي، يُمرر الاتصال عبر القناة الآمنة، ويُجرى اتصال إما بـ host المنفذ hostport ، أو مقبس Unix remote_socket ، من الحاسوب البعيد.

يمكن أيضاً تحديد عمليات تمرير المنافذ في ملف الضبط. يمكن للمستخدم الخارق فقط تمرير المنافذ ذات الامتيازات. يمكن تحديد عناوين IPv6 عن طريق حصر العنوان بين قوسين مربعين.

مبدئياً، يُربط المنفذ المحلي وفقاً لإعداد GatewayPorts. ومع ذلك، يمكن استخدام bind_address صريح لربط الاتصال بعنوان محدد. يشير bind_address بـ «localhost» إلى أن منفذ الاستماع مربوط للاستخدام المحلي فقط، بينما يشير العنوان الفارغ أو «*» إلى أن المنفذ يجب أن يكون متاحاً من جميع الواجهات.

login_name
يحدد المستخدم للولوج به إلى الحاسوب البعيد. يمكن أيضاً تحديد هذا لكل مضيف على حدة في ملف الضبط.
يضع عميل ssh في وضع «الرئيس» (master) لمشاركة الاتصال. تكرار خيارات -M يضع ssh في وضع «الرئيس» ولكن مع طلب تأكيد باستخدام ssh-askpass(1) قبل كل عملية تغير حالة التجميع (مثلاً فتح جلسة جديدة). راجع وصف ControlMaster في ssh_config(5) للتفاصيل.
mac_spec
قائمة خوارزميات MAC (رمز استيثاق الرسائل) مفصولة بفاصلة، ومحددة حسب الأفضلية. انظر الكلمة المفتاحية MACs في ssh_config(5) لمزيد من المعلومات.
عدم تنفيذ أمر بعيد. هذا مفيد لمجرد تمرير المنافذ. راجع وصف SessionType في ssh_config(5) للتفاصيل.
يعيد توجيه المدخلات القياسية من /dev/null (في الواقع، يمنع القراءة من المدخلات القياسية). يجب استخدام هذا عند تشغيل ssh في الخلفية. خدعة شائعة هي استخدام هذا لتشغيل برامج X11 على حاسوب بعيد. على سبيل المثال، ssh -n shadows.cs.hut.fi emacs & سيبدأ emacs على shadows.cs.hut.fi، وسيُمرر اتصال X11 آلياً عبر قناة معماة. سيُوضع برنامج ssh في الخلفية. (لا يعمل هذا إذا احتاج ssh لطلب كلمة مرور أو عبارة مرور؛ انظر أيضاً خيار -f). راجع وصف StdinNull في ssh_config(5) للتفاصيل.
ctl_cmd
التحكم في عملية رئيسة لتعدد الإرسال للاتصال النشط. عند تحديد الخيار -O ، يتم تفسير الوسيطة ctl_cmd وتمريرها إلى العملية الرئيسة. الأوامر الصالحة هي: “check” (التحقق من أن العملية الرئيسة قيد التشغيل)، “conninfo” (الإبلاغ عن معلومات حول الاتصال الرئيس)، “channels” (الإبلاغ عن معلومات حول القنوات المفتوحة)، “forward” (طلب إعادة التوجيه دون تنفيذ الأمر)، “cancel” (إلغاء عمليات إعادة التوجيه)، “proxy” (الاتصال بعملية رئيسة متعددة الإرسال قيد التشغيل في وضع الوكيل)، “exit” (طلب من العملية الرئيسة الخروج)، و “stop” (طلب من العملية الرئيسة التوقف عن قبول المزيد من طلبات التعدد).
خيار
يمكن استخدامه لإعطاء خيارات بالتنسيق المستخدم في ملف الضبط. هذا مفيد لتحديد خيارات ليس لها علم منفصل في سطر الأوامر. للحصول على تفاصيل كاملة عن الخيارات المدرجة أدناه وقيمها الممكنة، انظر 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
 
tag
يحدد اسم وسم يمكن استخدامه لاختيار التكوين في ssh_config(5). راجع الكلمتين المفتاحيتين Tag و Match في ssh_config(5) لمزيد من المعلومات.
port
المنفذ المراد الاتصال به على المضيف البعيد. يمكن تحديد ذلك لكل مضيف في ملف التكوين.
query_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 المقابل.
الوضع الهادئ. يتسبب في كتم معظم رسائل التحذير والتشخيص.
[bind_address:]port:host:hostport
 
[bind_address:]port:local_socket
 
remote_socket:host:hostport
 
remote_socket:local_socket
 
[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 ، سيُطبع المنفذ المخصص في المخرج القياسي.

ctl_path
يحدد موقع مقبس التحكم لمشاركة الاتصال، أو السلسلة “none” لتعطيل مشاركة الاتصال. راجع وصف ControlPath و ControlMaster في ssh_config(5) للتفاصيل.
يمكن استخدامه لطلب استدعاء نظام فرعي على النظام البعيد. تسهل الأنظمة الفرعية استخدام SSH كوسيلة نقل آمنة لتطبيقات أخرى (مثل sftp(1)). يُحدد النظام الفرعي كأمر بعيد. راجع وصف SessionType في ssh_config(5) للتفاصيل.
تعطيل تخصيص الطرفية الوهمية.
فرض تخصيص طرفية وهمية. يمكن استخدام هذا لتنفيذ برامج عشوائية تعتمد على الشاشة على جهاز بعيد، وهو أمر مفيد جداً، مثلاً عند تنفيذ خدمات القوائم. خيارات -t المتعددة تفرض تخصيص tty، حتى لو لم يكن لـ ssh أي tty محلي.
اعرض رقم الإصدار واخرج.
الوضع المسهب. يجعل ssh يطبع رسائل تنقيح حول تقدمه. وهذا مفيد في تنقيح مشاكل الاتصال، والاستيثاق، والتكوين. خيارات -v المتعددة تزيد الإسهاب. الحد الأقصى هو 3.
host:port
يطلب توجيه الدخل والخرج القياسي في العميل إلى host على port عبر القناة الآمنة. يتضمن ذلك -N ، و -T ، و ExitOnForwardFailure و ClearAllForwardings ، بالرغم من إمكانية تجاوز هذه الخيارات في ملف التكوين أو باستخدام خيارات سطر الأوامر -o.
local_tun[:remote_tun]
يطلب توجيه جهاز النفق باستخدام أجهزة tun(4) المحددة بين العميل (local_tun) والخادم (remote_tun).

يمكن تحديد الأجهزة بواسطة معرف رقمي أو الكلمة المفتاحية “any” ، والتي تستخدم جهاز النفق المتاح التالي. إذا لم يُحدد remote_tun ، فإنه يُضبط مبدئيًا على “any”. انظر أيضًا التوجيهين Tunnel و TunnelDevice في ssh_config(5).

إذا لم يُضبط توجيه Tunnel ، فسيُضبط على وضع النفق المبدئي، وهو “point-to-point”. إذا رُغب في وضع توجيه Tunnel مختلف، فيجب تحديده قبل -w.

يُفعل توجيه X11. يمكن أيضاً تحديد ذلك لكل مضيف في ملف التكوين.

ينبغي تفعيل تمرير X11 بحذر. يمكن للمستخدمين الذين لديهم القدرة على تجاوز أذونات الملفات على المضيف البعيد (لقاعدة بيانات تخويل X الخاصة بالمستخدم) الوصول إلى عرض X11 المحلي من خلال الاتصال الممرر. قد يتمكن المهاجم حينها من القيام بأنشطة مثل مراقبة ضغطات المفاتيح.

لهذا السبب، يخضع تمرير X11 لقيود ملحق X11 SECURITY مبدئيًا. راجع خيار ssh -Y وتوجيه ForwardX11Trusted في ssh_config(5) لمزيد من المعلومات.

يعطل توجيه X11.
يُفعل توجيه X11 الموثوق. لا تخضع توجيهات X11 الموثوقة لضوابط ملحق X11 SECURITY.
إرسال معلومات السجل باستخدام وحدة نظام 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.

عمليات الهروب المدعومة (بافتراض المبدئي ‘~’) هي:

قطع الاتصال.
وضع ssh في الخلفية.
سرد الاتصالات الممررة.
وضع ssh في الخلفية عند تسجيل الخروج أثناء انتظار إنهاء الاتصال الممرر / جلسات X11.
عرض قائمة بمحارف الهروب.
إرسال BREAK إلى النظام البعيد (مفيد فقط إذا كان الطرف الآخر يدعمه).
فتح سطر الأوامر. يسمح هذا حاليًا بإضافة عمليات تمرير المنافذ باستخدام الخيارات -L و -R و -D (انظر أعلاه). كما يسمح بإلغاء عمليات تمرير المنافذ الحالية باستخدام -KL[bind_address:]port للمحلي، و -KR[bind_address:]port للبعيد و -KD[bind_address:]port لعمليات تمرير المنافذ الديناميكية. يسمح !command للمستخدم بتنفيذ أمر محلي إذا كان خيار PermitLocalCommand مفعلًا في ssh_config(5). تتوفر مساعدة أساسية باستخدام الخيار -h.
إظهار معلومات حول اتصال SSH الحالي.
طلب إعادة تبادل المفاتيح للاتصال (مفيد فقط إذا كان الطرف الآخر يدعمه).
تقليل الإسهاب (LogLevel) عند كتابة الأخطاء إلى stderr.
زيادة الإسهاب (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) لخفض خوارزمية البصمة للمطابقة.

نظرًا لصعوبة مقارنة مفاتيح المضيف بمجرد النظر إلى سلاسل البصمات، هناك أيضًا دعم لمقارنة مفاتيح المضيف بصريًا، باستخدام . بضبط خيار 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 إلى موقع خادم X11. يُضبط آليًا بواسطة ssh ليشير إلى قيمة من الصيغة “hostname:n” ، حيث يشير “hostname” إلى المضيف الذي تعمل فيه الصدفة، و ‘n’ هو عدد صحيح ≥ 1. يستخدم ssh هذه القيمة الخاصة لتمرير اتصالات X11 عبر القناة الآمنة. ينبغي للمستخدم عادة عدم ضبط DISPLAY صراحة، لأن ذلك سيجعل اتصال X11 غير آمن (وسيتطلب من المستخدم نسخ أي كعكات تخويل مطلوبة يدويًا).
مضبوط على مسار دليل منزل المستخدم.
مرادف لـ USER ؛ يُضبط للتوافق مع الأنظمة التي تستخدم هذا المتغير.
مضبوط على مسار صندوق بريد المستخدم.
مضبوط على PATH المبدئي، كما هو محدد عند تجميع ssh.
إذا احتاج ssh إلى عبارة مرور، فسيقرأ عبارة المرور من الطرفية الحالية إذا شُغل من طرفية. إذا لم يكن لدى ssh طرفية مرتبطة به ولكن ضُبط DISPLAY و SSH_ASKPASS ، فإنه سينفذ البرنامج المحدد بواسطة SSH_ASKPASS ويفتح نافذة X11 لقراءة عبارة المرور. هذا مفيد بشكل خاص عند استدعاء ssh من .xsession أو سكريبت ذي صلة. (لاحظ أنه في بعض الحواسيب قد يكون من الضروري إعادة توجيه الإدخال من /dev/null لجعل هذا يعمل.)
تتيح تحكمًا أكبر في استخدام برنامج askpass. إذا ضُبط هذا المتغير على “never” فلن يحاول ssh استخدامه أبدًا. وإذا ضُبط على “prefer” ، فسيفضل ssh استخدام برنامج askpass بدلًا من TTY عند طلب كلمات السر. وأخيرًا، إذا ضُبط المتغير على “force” ، فسيُستخدم برنامج askpass لجميع عمليات إدخال عبارات المرور بغض النظر عما إذا كان DISPLAY مضبوطًا أم لا.
يحدد مسار مقبس UNIX-domain مستخدم للتواصل مع العميل.
يعرّف طرفي العميل والخادم للاتصال. يحتوي المتغير على أربع قيم مفصولة بمسافات: عنوان IP الخاص بالعميل، ورقم منفذ العميل، وعنوان IP الخاص بالخادم، ورقم منفذ الخادم.
يحتوي هذا المتغير على سطر الأوامر الأصلي في حال نُفذ أمر مفروض. يمكن استخدامه لاستخراج المعاملات الأصلية.
يُضبط هذا على اسم tty (المسار إلى الجهاز) المرتبط بالصدفة أو الأمر الحالي. إذا لم تكن للجلسة الحالية tty، فلن يُضبط هذا المتغير.
يُضبط اختياريًا بواسطة sshd(8) ليحتوي على أسماء الواجهات المعينة إذا طلب العميل تمرير النفق.
يُضبط اختياريًا بواسطة sshd(8) ، وقد يحتوي هذا المتغير على مسار لملف يسرد طرق الاستيثاق التي استُخدمت بنجاح عند إنشاء الجلسة، بما في ذلك أي مفاتيح عامة استُخدمت.
يُضبط هذا المتغير للإشارة إلى المنطقة الزمنية الحالية إذا كانت مضبوطة عند بدء تشغيل العفريت (أي أن العفريت يمرر القيمة إلى الاتصالات الجديدة).
مضبوط على اسم المستخدم الذي يسجل دخوله.

بالإضافة إلى ذلك، يقرأ 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