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  يعطل تمرير اتصال وكيل الاستيثاق.

-B bind_interface
    الربط بعنوان bind_interface قبل محاولة الاتصال بالمضيف الوجهة. هذا مفيد فقط في الأنظمة التي تملك أكثر من عنوان واحد.

-b bind_address
    استخدام bind_address على الحاسوب المحلي كعنوان مصدر للاتصال. مفيد فقط في الأنظمة التي تملك أكثر من عنوان واحد.

-C  يطلب ضغط جميع البيانات (بما في ذلك المدخلات القياسية، والمخرجات القياسية، والأخطاء القياسية، وبيانات اتصالات X11 وTCP و UNIX-domain الممررة). خوارزمية الضغط هي نفسها المستخدمة في gzip(1). الضغط مستحب في خطوط المودم والاتصالات البطيئة الأخرى، ولكنه سيؤدي فقط إلى إبطاء الأمور في الشبكات السريعة. يمكن ضبط القيمة المبدئية لكل مضيف على حدة في ملفات الضبط؛ انظر خيار Compression في ssh_config(5).

-c cipher_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» إلى أن منفذ الاستماع مربوط للاستخدام المحلي فقط، بينما يشير العنوان الفارغ أو «*» إلى أن المنفذ يجب أن يكون متاحاً من جميع الواجهات.

-E log_file
    إلحاق سجلات التنقيح بـ log_file بدلاً من الخطأ القياسي.

-e escape_char
    يضبط محرف الهروب للجلسات التي تستخدم pty (المبدئي: ‘~’). يُتعرف على محرف الهروب فقط في بداية السطر. محرف الهروب متبوعاً بنقطة (‘’). يغلق الاتصال؛ متبوعاً بـ control-Z يعلق الاتصال؛ ومتبوعاً بنفسه يرسل محرف الهروب مرة واحدة. ضبط المحرف إلى «none» يعطل أي هروب ويجعل الجلسة شفافة تماماً.

-F configfile
    يحدد ملف ضبط بديل لكل مستخدم. إذا أُعطي ملف ضبط في سطر الأوامر، فسيُتجاهل ملف الضبط الخاص بالنظام (/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)، فيجب تحديد هذا الخيار في العملية الرئيسة.

-I pkcs11
    تحديد مكتبة PKCS#11 المشتركة التي يجب أن يستخدمها ssh للتواصل مع رمز PKCS#11 الذي يوفر مفاتيح لاستيثاق المستخدم.

-i 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 بأسماء ملفات الهوية.

-J destination
    الاتصال بالمضيف المستهدف عن طريق إجراء اتصال ssh أولاً بمضيف القفز الموصوف بـ destination ثم إنشاء تمرير TCP إلى الوجهة النهائية من هناك. يمكن تحديد قفزات متعددة مفصولة بفاصلات. يمكن تحديد عناوين IPv6 عن طريق حصر العنوان بين قوسين مربعين. هذا اختصار لتحديد توجيه الضبط ProxyJump. لاحظ أن توجيهات الضبط المتوفرة في سطر الأوامر تنطبق بشكل عام على المضيف الوجهة وليس على أي مضيفات قفز محددة. استخدم ~/.ssh/config لتحديد ضبط مضيفات القفز.

-K  يفعّل الاستيثاق المعتمد على GSSAPI وتمرير (تفويض) بيانات اعتماد GSSAPI إلى الخادم.

-k  يعطل تمرير (تفويض) بيانات اعتماد GSSAPI إلى الخادم.

-L  [bind_address:] port:host:hostport
-L  [bind_address:] port:remote_socket
-L  local_socket:host:hostport
-L  local_socket:remote_socket يحدد أن الاتصالات بمنفذ TCP المعطى أو مقبس Unix على المضيف المحلي (العميل) يجب تمريرها إلى المضيف والمنفذ المعطيين، أو مقبس Unix، في الجانب البعيد. يعمل هذا عن طريق تخصيص مقبس للاستماع إما لمنفذ TCP port في الجانب المحلي، مربوط اختيارياً بـ bind_address المحدد، أو لمقبس Unix. كلما أُجري اتصال بالمنفذ أو المقبس المحلي، يُمرر الاتصال عبر القناة الآمنة، ويُجرى اتصال إما بـ host المنفذ hostport ، أو مقبس Unix remote_socket ، من الحاسوب البعيد.

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

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

-l login_name
    يحدد المستخدم للولوج به إلى الحاسوب البعيد. يمكن أيضاً تحديد هذا لكل مضيف على حدة في ملف الضبط.

-M  يضع عميل ssh في وضع «الرئيس» (master) لمشاركة الاتصال. تكرار خيارات -M يضع ssh في وضع «الرئيس» ولكن مع طلب تأكيد باستخدام ssh-askpass(1) قبل كل عملية تغير حالة التجميع (مثلاً فتح جلسة جديدة). راجع وصف ControlMaster في ssh_config(5) للتفاصيل.

-m mac_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) للتفاصيل.

-O ctl_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

-P tag
    يحدد اسم وسم يمكن استخدامه لاختيار التكوين في ssh_config(5). راجع الكلمتين المفتاحيتين Tag و Match في ssh_config(5) لمزيد من المعلومات.
-p port
    المنفذ المراد الاتصال به على المضيف البعيد. يمكن تحديد ذلك لكل مضيف في ملف التكوين.

-Q 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 المقابل.

-q  الوضع الهادئ. يتسبب في كتم معظم رسائل التحذير والتشخيص.

-R  [bind_address:] port:host:hostport
-R  [bind_address:] port:local_socket
-R  remote_socket:host:hostport
-R  remote_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 ، سيُطبع المنفذ المخصص في المخرج القياسي.

-S ctl_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.

-W host:port
    يطلب توجيه الدخل والخرج القياسي في العميل إلى host على port عبر القناة الآمنة. يتضمن ذلك -N ، و -T ، و ExitOnForwardFailure و ClearAllForwardings ، بالرغم من إمكانية تجاوز هذه الخيارات في ملف التكوين أو باستخدام خيارات سطر الأوامر -o.

-w  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.

-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, C. Lonvick, يناير 2006, RFC 4250, The Secure Shell (SSH) Protocol Assigned Numbers.

T. Ylonen, C. Lonvick, يناير 2006, RFC 4251, The Secure Shell (SSH) Protocol Architecture.

T. Ylonen, C. Lonvick, يناير 2006, RFC 4252, The Secure Shell (SSH) Authentication Protocol.

T. Ylonen, C. Lonvick, يناير 2006, RFC 4253, The Secure Shell (SSH) Transport Layer Protocol.

T. Ylonen, C. Lonvick, يناير 2006, RFC 4254, The Secure Shell (SSH) Connection Protocol.

J. Schlyter, W. Griffin, يناير 2006, RFC 4255, Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints.

F. Cusack, M. Forssen, يناير 2006, RFC 4256, Generic Message Exchange Authentication for the Secure Shell Protocol (SSH).

J. Galbraith, P. Remaker, يناير 2006, RFC 4335, The Secure Shell (SSH) Session Channel Break Extension.

M. Bellare, T. Kohno, C. Namprempre, يناير 2006, RFC 4344, The Secure Shell (SSH) Transport Layer Encryption Modes.

B. Harris, يناير 2006, RFC 4345, Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol.

M. Friedl, N. Provos, W. Simpson, مارس 2006, RFC 4419, بروتوكول تبادل مجموعات ديفي-هيلمان لطبقة نقل القشرة الآمنة (SSH).

J. Galbraith, R. Thayer, نوفمبر 2006, RFC 4716, The Secure Shell (SSH) Public Key File Format.

D. Stebila, J. Green, ديسمبر 2009, RFC 5656, Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer.

A. Perrig, D. Song, 1999, International Workshop on Cryptographic Techniques and E-Commerce (CrypTEC '99), Hash Visualization: a New Technique to improve Real-World Security.

المؤلفون
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: https://www.gnu.org/licenses/gpl-3.0.html أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.