HeadlinesBriefing HeadlinesBriefing 12 languages

EP228: How SSH Works

ByteByteGo ·

🇬🇧 English

Secure shell (SSH) is a method to access a remote machine securely over an unsecured network. It starts with a TCP connection from the SSH client to the remote machine (SSH server). Both machines exchange SSH versions, negotiate crypto algorithms, and run a key exchange protocol.

The SSH server sends the public key and a signature, which the client verifies. That host key is checked against the known_hosts file. Both machines derive session keys separately and never share them over the network.

The SSH client then sends the public key for authentication. The SSH server matches it against authorized_keys, and the client signs the auth request with the private key, sending a digital signature to the server. The private key never leaves your machine.

The server verifies the signature with the client's public key, completing SSH authentication and opening the session for communication.

View original article →


🇸🇦 العربية

EP228: كيف يعمل SSH - Byte Byte Go

Secure Shell (SSH) هو طريقة للوصول إلى جهاز عن بعد بشكل آمن عبر شبكت غير آمنة. يبدأ باتصال TCP من عميل SSH إلى الجهازremote (خادم SSH). تبادل الأجهزة إصدارات SSH، وتفاوض على خوارزميات التشفير، وتعمل على بروتوكول تبادل المفاتيح. يرسل خادم SSH المفتاح العام والstice، الذي يره العميل. تُحقق هذه المفتاح من الملف known_hosts. تُشتق الأجهزة مفاتيح الجلسة بشكل منفصل ولا تُشاركها عبر الشبكة. ثم يرسل عميل SSH المفتاح العام للمصادقة. يطابق خادم SSH المفتاح مع authorized_keys، ويُوقّع العميل طلب المصادقة بالمفتاح الخاص، ويرسل توقيعًا رقميًا إلى الخادم. لا يغادر المفتاح الخاص جهازك أبدًا. يrif الخادم التوقيع باستخدام المفتاح العام للعميل، مكتملًا مصادقة SSH وفتح الجلسة للم_io.

كيف يضمن SSH الاتصال الآمن مع الأجهزة remote؟

يؤestablish SSH الاتصال الآمن من خلال تفاوض على خوارزميات التشفير، و质押 تبادل المفاتيح، وال/check المفتاح من known_hosts، والمصادقة عبر أزوج المفاتيح العامة والخاصة حيث لا يغادر المفتاح الخاص العميل.

العربية version →


🇧🇩 বাংলা

EP228: কিভাবে কাজ করে SSH - Byte Byte Go

সিকিউর শেল (SSH) হলো অনিরাপদ নেটওয়ার্কের মধ্য দিয়ে একটি রিমোট মেশিনে নিরাপদে অ্যাক্সেস করার একটি পদ্ধতি। এটি SSH ক্লায়েন্ট থেকে রিমোট মেশিন (SSH সার্ভার) পর্যন্ত টিসিপি সংযোগ দিয়ে শুরু হয়। দুইটি মেশিন একটি সংক্রান্ত বিনিময় করে, ক্রিপ্টোগ্রাফিক অ্যালগরিদম নেগোসিয়েট করে এবং একটি কী এক্সচেঞ্জ প্রোটোকল চালায়। SSH সার্ভার একটি পাবলিক কী এবং একটি স্বাক্ষর পাঠায়, যা ক্লায়েন্ট যাচাই করে। এই হোস্ট কীটি known_hosts ফাইলের সাথে তুলনা করা হয়। দুইটি মেশিন আলাদা আলাদা সেশন কী তৈরি করে এবং কখনো নেটওয়ার্কের মধ্য দিয়ে শেয়ার করে না। তারপর SSH ক্লায়েন্ট অ্যাথেনটিকেশনের জন্য পাবলিক কী পাঠায়। SSH সার্ভার এটি authorized_keys এর সাথে মিলায়, এবং ক্লায়েন্ট প্রাইভেট কী দিয়ে অ্যাথেনটিকেশন অনুরোধের ওপর স্বাক্ষর করে এবং সার্ভারকে ডিজিটাল স্বাক্ষর পাঠায়। প্রাইভেট কী আপনার মেশিন থেকে কখনো বের হয় না। সার্ভার ক্লায়েন্টের পাবলিক কী দিয়ে স্বাক্ষর যাচাই করে, SSH অ্যাথেনটিকেশন সম্পূর্ণ করে এবং যোগাযোগের জন্য সেশন খুলে দেয়।

SSH কিভাবে রিমোট মেশিনের সাথে নিরাপদ যোগাযোগ নিশ্চিত করে?

SSH ক্রিপ্টোগ্রাফিক অ্যালগরিদম নেগোসিয়েট করে, কী এক্সচেঞ্জ সম্পাদন করে, known_hosts এর বিরুদ্ধে হোস্ট কী যাচাই করে এবং পাবলিক/প্রাইভেট কী পেয়ারের মাধ্যমে ব্যবহারকারীর অ্যাথেনটিকেশন করে যেখানে প্রাইভেট কী ক্লায়েন্ট মেশিন থেকে কখনো বের হয় না।

বাংলা version →


🇩🇪 Deutsch

EP228: Wie funktioniert SSH - Byte Byte Go

Secure Shell (SSH) ist eine Methode, um sicher auf eine Remote-Maschine über ein unsicheres Netz zuzugreifen. Es beginnt mit einer TCP-Verbindung vom SSH-Client zur Remote-Maschine (SSH-Server). Beide Maschinen tauschen SSH-Versionen aus, verhandeln kryptografische Algorithmen und führen ein Schlüsselaustausch-Protokoll aus.

Der SSH-Server sendet einen öffentlichen Schlüssel und eine Signatur, die der Client verifiziert. Dieser Host-Schlüssel wird gegen die known_hosts-Datei geprüft. Beide Maschinen leiten Session-Schlüssel separat ab und teilen sie niemals über das Netz.

Der SSH-Client sendet dann seinen öffentlichen Schlüssel zur Authentifizierung. Der SSH-Server vergleicht ihn mit authorized_keys, und der Client signiert die Authentifizierungsanfrage mit dem privaten Schlüssel, sendet eine digitale Signatur an den Server. Der private Schlüssel verlässt Ihre Maschine niemals.

Der Server verifiziert die Signatur mit dem öffentlichen Schlüssel des Clients, vervollständigt die SSH-Authentifizierung und öffnet die Kommunikationssession.

Wie stellt SSH sichere Kommunikation mit Remote-Maschinen sicher?

SSH stellt sichere Kommunikation durch Verhandlung kryptografischer Algorithmen, Schlüsselaustausch, Überprüfung von Host-Schlüsseln gegen known_hosts und Authentifizierung von Nutzern über öffentliche/privaten Schlüsselpaare sicher, wobei der private Schlüssel den Client niemals verlässt.

Deutsch version →


🇪🇸 Español

EP228: Cómo funciona SSH - Byte Byte Go

Secure Shell (SSH) es un método para acceder de forma segura a una máquina remota a través de una red no segura. Comienza con una conexión TCP desde el cliente SSH hacia la máquina remota (servidor SSH). Ambas máquinas intercambian versiones SSH, negocian algoritmos criptográficos y ejecutan un protocolo de intercambio de claves.

El servidor SSH envía una clave pública y una firma, que el cliente verifica. Esa clave de host se comprueba contra el archivo known_hosts. Ambas máquinas derivan claves de sesión por separado y nunca las comparten a través de la red.

Luego, el cliente SSH envía su clave pública para autenticación. El servidor SSH la compara con authorized_keys, y el cliente firma la solicitud de autenticación con su clave privada, enviando una firma digital al servidor. La clave privada nunca sale de tu máquina.

El servidor verifica la firma con la clave pública del cliente, completando la autenticación SSH y abriendo la sessión para la comunicación.

¿Cómo asegura SSH la comunicación segura con máquinas remotas?

SSH establece una comunicación segura mediante la negociación de algoritmos criptográficos, el intercambio de claves, la verificación de claves de host contra known_hosts y la autenticación de usuarios mediante pares de claves pública/privada, donde la clave privada nunca sale de la máquina cliente.

Español version →


🇫🇷 Français

EP228 : Comment fonctionne SSH - Byte Byte Go

Secure Shell (SSH) est une méthode pour accéder de manière sécurisée à une machine distante via un réseau non sécurisé. Elle commence par une connexion TCP depuis le client SSH vers la machine distante (serveur SSH). Les deux machines échangent les versions SSH, négocient les algorithmes cryptographiques et exécutent un protocole d'échange de clés.

Le serveur SSH envoie une clé publique et une signature, que le client vérifie. Cette clé d'hôte est vérifiée dans le fichier known_hosts. Les deux machines dérivent des clés de session séparément et ne les partagent jamais sur le réseau.

Le client SSH envoie ensuite sa clé publique pour l'authentification. Le serveur SSH la compare avec authorized_keys, et le client signe la demande d'authentification avec sa clé privée, envoie une signature numérique au serveur. La clé privée ne quitte jamais votre machine.

Le serveur vérifie la signature avec la clé publique du client, terminant l'authentification SSH et ouvrant la session de communication.

Comment SSH assure-t-il une communication sécurisée avec des machines distantes ?

SSH établit une communication sécurisée en négociant des algorithmes cryptographiques, en effectuant des échanges de clés, en vérifiant les clés d'hôte contre known_hosts, et en authentifiant les utilisateurs via des paires de clés publique/privée, où la clé privée ne quitte jamais la machine cliente.

Français version →


🇮🇳 हिन्दी

EP228: SSH कैसे काम करता है - Byte Byte Go

सिक्योर शेल (SSH) एक तरीका है जिसका उपयोग असुरक्षित नेटवर्क के माध्यम से रिमोट मशीन तक सुरक्षित पहुंचने के लिए किया जाता है। यह SSH क्लायंट से रिमोट मशीन (SSH सर्वर) तक TCP कनेक्शन शुरू करके होता है। दोनों मशीनें SSH संस्करणों का अदला-बदली करती हैं, क्रिप्टोग्राफिक एल्गोरिथम को समझौता करती हैं और की एक्सचेंज प्रोटोकॉल चलाती हैं। SSH सर्वर एक पब्लिक की और एक साइनेचर भेजता है जिसे क्लायंट सत्यापित करता है। यह होस्ट की known_hosts फाइल से जाँची जाती है। दोनों मशीनें अलग-अलग सेशन की तैयार करती हैं और इसे नेटवर्क के माध्यम से कभी साझा नहीं करतीं। फिर SSH क्लायंट प्रमाणीकरण के लिए अपनी पब्लिक की भेजता है। SSH सर्यवर इसे authorized_keys से मिलाता है और क्लायंट अपनी प्राइवेट की से प्रमाणीकरण अनुरोध पर हस्ताक्षर करता है और सर्वर को डिजिटल साइनेचर भेजता है। प्राइवेट की आपकी मशीन से कभी बाहर नहीं निकलती। सर्वर क्लायंट की पब्लिक की से साइनेचर की पुष्टि करता है, SSH प्रमाणीकरण पूरा करता है और संचार के लिए सेशन खोलता है।

SSH रिमोट मशीनों के साथ सुरक्षित संचार कैसे सुनिश्चित करता है?

SSH क्रिप्टोग्राफिक एल्गोरिथम को समझौता करके, की एक्सचेंज करके, known_hosts के माध्यम से होस्ट की की सत्यापित करके और पब्लिक/प्राइवेट की युग्मों के माध्यम से उपयोगकर्ता प्रमाणीकरण करके सुरक्षित संचार स्थापित करता है जहाँ प्राइवेट की क्लायंट मशीन से कभी बाहर नहीं जाती।

हिन्दी version →


🇮🇩 Bahasa Indonesia

EP228: Bagaimana SSH Bekerja - Byte Byte Go

Secure Shell (SSH) adalah metode untuk mengakses mesin jarak jauh dengan aman melalui jaringan tidak aman. Dimulai dengan konneksi TCP dari klien SSH ke mesin jarak jauh (server SSH). Kedua mesin bertukar versi SSH, menegosiasikan algoritma kriptografi, dan menjalankan protokol pertukaran kunci.

Server SSH mengirimkan kunci publik dan tanda tangan, yang diverifikasi oleh klien. Kunci host tersebut dicek terhadap berkas known_hosts. Kedua mesin menurunkan kunci sesi secara terpisah dan tidak pernah membaginya melalui jaringan.

Kemudian, klien SSH mengirimkan kunci publik untuk otorisasi. Server SSH membandingkannya dengan authorized_keys, dan klien menandatangani permintaan otorisasi dengan kunci privat, mengirimkan tanda tangan digital ke server. Kunci privat tidak pernah meninggaskan mesin Anda.

Server memverifikasi tanda tangan dengan kunci publik klien, menyelesaikan otorisasi SSH dan membuka sesi komunikasi.

Bagaimana SSH menjamin komunikasi aman dengan mesin jarak jauh?

SSH menetapkan komunikasi aman dengan menegosiasikan algoritma kriptografi, melakukan pertukaran kunci, memverifikasi kunci host terhadap known_hosts, dan mengotentikasikan pengguna melalui pasangan kunci publik/privat di mana kunci privat tidak pernah meninggaskan mesin klien.

Bahasa Indonesia version →


🇯🇵 日本語

EP228: SSHの仕組み - Byte Byte Go

セキュアシェル(SSH)は、安全でないネットワークを介してリモートマシンに安全にアクセスする方法です。SSHクライアントからリモートマシン(SSHサーバー)へのTCP接続から始まります。2台のマシンはSSHバージョンを交換し、暗号アルゴリズムを交渉し、キー交換プロトコルを実行します。SSHサーバーは公開鍵と署名を送信し、クライアントが検証します。このホスト鍵はknown_hostsファイルと照合されます。2台のマシンはそれぞれ独立してセッション鍵を生成し、ネットワーク経由で共有することはありません。その後、SSHクライアントは認証用に公開鍵を送信します。SSHサーバーは将其をauthorized_keysと照合し、クライアントは秘密鍵で認証リクエストに署名し、デジタル署名をサーバーに送信します。秘密鍵はあなたのマシンから決して出ません。サーバーはクライアントの公開鍵で署名を検証し、SSH認証を完了して通信セッションを開きます。

SSHはリモートマシンとの安全な通信をどう実現していますか?

SSHは暗号アルゴリズムの交渉、キー交換の実行、known_hostsによるホスト鍵の検証、公開鍵/秘密鍵ペアによるユーザー認証(秘密鍵がクライアントマシンから決して出ない)を通じて安全な通信を確立します。

日本語 version →


🇧🇷 Português

EP228: Como funciona o SSH - Byte Byte Go

Secure Shell (SSH) é um método para acessar uma máquina remota de forma segura em uma rede não segura. Começa com uma conexão TCP do cliente SSH para a máquina remota (servidor SSH). As duas máquinas trocam versões SSH, negociam algoritmos criptográficos e executam um protocolo de troca de chaves.

O servidor SSH envia a chave pública e uma assinatura, que o cliente verifica. Essa chave de host é verificada no arquivo known_hosts. As duas máquinas derivam chaves de sessão separadamente e nunca as compartilham na rede.

Em seguida, o cliente SSH envia a chave pública para autenticação. O servidor SSH a compara com authorized_keys, e o cliente assina a solicitação de autenticação com a chave privada, enviando uma assinatura digital para o servidor. A chave privada nunca sai da sua máquina.

O servidor verifica a assinatura com a chave pública do cliente, concluindo a autenticação SSH e abrindo a sessão para comunicação.

Como o SSH garante comunicação segura com máquinas remotas?

O SSH estabelece comunicação segura negociando algoritmos criptográficos, realizando trocas de chaves, verificando chaves de host contra known_hosts e autenticando usuários por meio de pares de chaves pública/privada, onde a chave privada nunca sai da máquina cliente.

Português version →


🇷🇺 Русский

EP228: Как работает SSH - Byte Byte Go

Secure Shell (SSH) — это метод безопасного доступа к удаленной машине по небезопасной сети. Он начинается с установления TCP-соединения от клиента SSH к удаленной машине (серверу SSH). Обе машины обмениваются версиями SSH, согласуют криптографические алгоритмы и выполняют протокол обмена ключами. Сервер SSH отправляет публичный ключ и подпись, которые клиент проверяет. Этот хост-ключ проверяется в файле known_hosts. Обе машины отдельно генерируют сессионные ключи и никогда не передают их по сети. Затем клиент SSH отправляет публичный ключ для аутентификации. Сервер SSH сравнивает его с authorized_keys, а клиент подписывает запрос аутентификации приватным ключом, отправляя цифровую подпись на сервер. Приватный ключ никогда не покадает вашу машину. Сервер проверяет подпись с помощью публичного клиента, завершая аутентификацию SSH и открывая сеанс связи.

Как SSH обеспечивает безопасную связь с удалёнными машинами?

SSH устанавливает безопасную связь, согласовывая криптографические алгоритмы, обмениваясь ключами, проверяя хост-ключ в known_hosts и аутентифицируя пользователей через пары публичный/приватный ключей, где приватный ключ никогда не покидает клиентскую машину.

Русский version →


🇨🇳 简体中文

EP228:SSH 如何工作 - Byte Byte Go

安全外壳(SSH)是一种在不安全网络上安全访问远程计算机的方法。它从 SSH 客户端到远程计算机(SSH 服务器)建立 TCP 连接开始。两台机器交换 SSH 版本,协商加密算法,并运行密钥交换协议。SSH 服务器发送公钥和签名,客户端进行验证。该主机密钥会与 known_hosts 文件进行比对。两台机器分别派生会话密钥,且绝不通过网络共享。随后,SSH 客户端发送公钥进行身份验证。SSH 服务器将其与 authorized_keys 进行匹配,客户端用私钥对认证请求签名,并将数字签名发送给服务器。私钥绝不会离开你的机器。服务器使用客户端的公钥验证签名,完成 SSH 身份验证并打开通信会话。

SSH 如何确保与远程机器的通信安全?

SSH 通过协商加密算法、执行密钥交换、根据 known_hosts 验证主机密钥,并通过公私钥对进行用户身份验证来建立安全通信,其中私钥绝不会离开客户端机器。

简体中文 version →