{"id":6083,"date":"2026-08-23T20:45:29","date_gmt":"2026-08-23T11:45:29","guid":{"rendered":"https:\/\/eternalsphere.net\/echoes\/?p=6083"},"modified":"2026-09-12T14:54:09","modified_gmt":"2026-09-12T05:54:09","slug":"vrp00p30qy096x9","status":"publish","type":"post","link":"https:\/\/blog.eternalsphere.net\/index.php\/2026\/08\/23\/vrp00p30qy096x9\/","title":{"rendered":"Windows 11 and SSH: Understanding Remote Connections, Keys, and Authentication"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Windows 11 includes native support for <strong>OpenSSH<\/strong>, which means it can work both as an <strong>SSH client<\/strong> and as an <strong>SSH server<\/strong>. This makes it possible to manage Linux servers directly from Windows, connect remotely to Windows from Linux, transfer files with SCP\/SFTP, and use public-key authentication without installing third-party SSH software.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The most important concept is that SSH uses <strong>different keys for different purposes<\/strong>. The keys used when Windows acts as a server are not the same as the keys used when Windows acts as a client.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Windows 11 as an SSH Client<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When Windows connects to another machine, it acts as the SSH client.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh user@192.168.1.100\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The SSH client is normally included with Windows 11 and can be checked with:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh -V\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A typical installation reports something similar to:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OpenSSH_for_Windows_...\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Client-side user keys<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Public-key authentication normally uses a key pair stored under the current Windows user&#8217;s profile:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\Users\\&lt;username&gt;\\.ssh\\\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For an ED25519 key pair:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>id_ed25519\nid_ed25519.pub\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Their roles are:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>id_ed25519       Private key\nid_ed25519.pub   Public key\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The private key must remain on the Windows computer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The public key is copied to machines that Windows needs to access.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, when connecting to a Linux account, the contents of:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\Users\\&lt;username&gt;\\.ssh\\id_ed25519.pub\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">are added to:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>~\/.ssh\/authorized_keys\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">on the Linux server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If no key pair exists, one can be generated with:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh-keygen -t ed25519\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In simple terms:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Windows client\n    |\n    | owns private key\n    |\n    +-- id_ed25519\n\nPublic key\n    |\n    +---------&gt; remote server\n                 ~\/.ssh\/authorized_keys\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The private key proves the identity of the user connecting to the server.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Windows 11 as an SSH Server<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Windows 11 can also run <strong>OpenSSH Server<\/strong>, allowing another computer to connect to Windows using SSH.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The server-side files are mainly stored in:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\ProgramData\\ssh\\\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A typical directory may contain:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>administrators_authorized_keys\n\nssh_host_ecdsa_key\nssh_host_ecdsa_key.pub\n\nssh_host_ed25519_key\nssh_host_ed25519_key.pub\n\nssh_host_rsa_key\nssh_host_rsa_key.pub\n\nsshd_config\nsshd.pid\nlogs\\\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">At first glance, the number of key files may seem excessive. In reality, they fall into a few clearly defined categories.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Host Keys: The Identity of the Windows SSH Server<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Files beginning with:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh_host_\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">are <strong>server host keys<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Examples include:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh_host_ed25519_key\nssh_host_ed25519_key.pub\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh_host_rsa_key\nssh_host_rsa_key.pub\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">There are usually several sets because OpenSSH supports multiple cryptographic algorithms:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ED25519<\/li>\n\n\n\n<li>ECDSA<\/li>\n\n\n\n<li>RSA<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Each algorithm has a private key and a public key.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh_host_ed25519_key       Private host key\nssh_host_ed25519_key.pub   Public host key\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">These keys answer a specific question:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Which SSH server is the client connecting to?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">They identify the <strong>Windows machine itself as an SSH server<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They do not identify the Windows user who is connecting to another server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This distinction is important.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When an SSH client connects to a server for the first time, a message may appear similar to:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>The authenticity of host ... can't be established.\nED25519 key fingerprint is SHA256:...\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">That fingerprint is derived from the SSH server&#8217;s host key.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After accepting it, the client normally records the server identity in:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>known_hosts\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This helps detect unexpected changes to the server&#8217;s SSH identity during later connections.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">4. User Keys and Host Keys Are Different<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The easiest way to understand SSH keys is to separate two identities.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Server identity<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The server proves:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">This is the same server that was connected to previously.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Windows stores its server host keys under:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\ProgramData\\ssh\\ssh_host_*\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Linux normally stores equivalent keys under:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/ssh\/ssh_host_*\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Client user identity<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The client proves:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">This user possesses the private key corresponding to an authorized public key.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Windows normally stores user keys under:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\Users\\&lt;username&gt;\\.ssh\\\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Linux normally stores them under:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>~\/.ssh\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Host key = identity of the SSH server\n\nUser key = identity of the user connecting to the SSH server\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">These are two separate key systems even though both use SSH cryptography.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">5. What <code>authorized_keys<\/code> Does<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Another important file is:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>authorized_keys\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This file does not contain the server&#8217;s own identity.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead, it contains the public keys of users or devices that are allowed to log in.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Client machine\nC:\\Users\\&lt;username&gt;\\.ssh\\id_ed25519.pub\n                     |\n                     |\n                     v\nLinux server\n\/home\/user\/.ssh\/authorized_keys\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the corresponding private key remains on the Windows client, the Windows user can authenticate to that Linux account without sending the private key across the network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Linux usually keeps an <code>authorized_keys<\/code> file for each account:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/home\/alice\/.ssh\/authorized_keys\n\/home\/bob\/.ssh\/authorized_keys\n\/root\/.ssh\/authorized_keys\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Windows OpenSSH follows essentially the same design for ordinary users:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\Users\\&lt;username&gt;\\.ssh\\authorized_keys\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">6. The Windows Administrator Exception<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Windows OpenSSH has an important default behavior for accounts belonging to the <strong>Administrators<\/strong> group.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of using:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\Users\\&lt;administrator&gt;\\.ssh\\authorized_keys\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">the default configuration commonly uses:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\ProgramData\\ssh\\administrators_authorized_keys\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This provides a centralized public-key authorization file for administrator accounts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The relevant configuration is typically defined in <code>sshd_config<\/code> with a rule similar to:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Match Group administrators\n    AuthorizedKeysFile __PROGRAMDATA__\/ssh\/administrators_authorized_keys\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, for an administrator account:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Client public key\n        |\n        v\nC:\\ProgramData\\ssh\\administrators_authorized_keys\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This file should not be confused with:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh_host_ed25519_key.pub\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The difference is fundamental:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>administrators_authorized_keys\n    = who is allowed to log in\n\nssh_host_ed25519_key.pub\n    = identity of the Windows SSH server\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">7. What the Other Files in <code>C:\\ProgramData\\ssh<\/code> Do<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><code>sshd_config<\/code><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\ProgramData\\ssh\\sshd_config\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This is the main OpenSSH Server configuration file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It controls settings such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SSH listening port<\/li>\n\n\n\n<li>authentication methods<\/li>\n\n\n\n<li>public-key authentication<\/li>\n\n\n\n<li>password authentication<\/li>\n\n\n\n<li>authorized-key locations<\/li>\n\n\n\n<li>logging<\/li>\n\n\n\n<li>access restrictions<\/li>\n\n\n\n<li>host keys<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">It can be considered the main configuration file for the Windows SSH server.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>sshd.pid<\/code><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sshd.pid\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This records the process ID of the running SSH server process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is not a key and is not part of authentication.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>logs<\/code><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>logs\\\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This directory may contain OpenSSH server logs depending on the logging configuration.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">8. Windows and Linux Use the Same Basic SSH Model<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Although their filesystem layouts are different, Windows OpenSSH and Linux OpenSSH use essentially the same architecture.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Purpose<\/th><th>Windows<\/th><th>Linux<\/th><\/tr><\/thead><tbody><tr><td>Server host keys<\/td><td><code>C:\\ProgramData\\ssh\\ssh_host_*<\/code><\/td><td><code>\/etc\/ssh\/ssh_host_*<\/code><\/td><\/tr><tr><td>Server configuration<\/td><td><code>C:\\ProgramData\\ssh\\sshd_config<\/code><\/td><td><code>\/etc\/ssh\/sshd_config<\/code><\/td><\/tr><tr><td>User private key<\/td><td><code>%USERPROFILE%\\.ssh\\id_ed25519<\/code><\/td><td><code>~\/.ssh\/id_ed25519<\/code><\/td><\/tr><tr><td>User public key<\/td><td><code>%USERPROFILE%\\.ssh\\id_ed25519.pub<\/code><\/td><td><code>~\/.ssh\/id_ed25519.pub<\/code><\/td><\/tr><tr><td>Authorized client keys<\/td><td><code>.ssh\\authorized_keys<\/code><\/td><td><code>~\/.ssh\/authorized_keys<\/code><\/td><\/tr><tr><td>Previously trusted servers<\/td><td><code>.ssh\\known_hosts<\/code><\/td><td><code>~\/.ssh\/known_hosts<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The major Windows-specific difference is the special default handling of administrator accounts through:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\ProgramData\\ssh\\administrators_authorized_keys\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">9. A Simple Mental Model<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SSH becomes much easier to understand when reduced to three files or concepts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>id_ed25519<\/code><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Who am I?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This is the client&#8217;s private key.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It stays on the client.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>authorized_keys<\/code><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Who may log in?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This is stored on the server and contains authorized client public keys.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>ssh_host_ed25519_key<\/code><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Which server am I?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This is the server&#8217;s private host key.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It stays on the server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The complete authentication relationship can therefore be visualized as:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CLIENT                                    SERVER\n\nid_ed25519\nPrivate user key\n     |\n     | proves possession\n     |\n     +-------------------------------&gt; authorized_keys\n                                       contains permitted\n                                       public user keys\n\n\nknown_hosts\nremembers server\nidentity\n     ^\n     |\n     | server proves identity\n     |\nssh_host_ed25519_key\nexists on the SERVER\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">There are two independent trust questions:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Client asks:\n\"Is this really the server expected?\"\n\nServer asks:\n\"Is this really an authorized user?\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The host-key system answers the first question.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The user-key and <code>authorized_keys<\/code> system answer the second.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">10. Practical Security Rules<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Several rules prevent most SSH key-management mistakes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Never copy a private key to the remote server.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Files such as:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>id_ed25519\nssh_host_ed25519_key\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">are private keys and should remain on the machine where they were generated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Only public keys such as:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>id_ed25519.pub\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">should normally be distributed for user authentication.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not use:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\ProgramData\\ssh\\ssh_host_ed25519_key.pub\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">as the user public key for logging in to Linux.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That file represents the identity of the Windows SSH <strong>server<\/strong>, not the Windows user.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When Windows needs to log in to another machine, the relevant public key normally comes from:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\Users\\&lt;username&gt;\\.ssh\\id_ed25519.pub\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Windows 11&#8217;s built-in OpenSSH implementation follows essentially the same security model used on Linux.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The apparent complexity mainly comes from the fact that SSH manages two different identities simultaneously:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>The identity of the server<\/strong>, represented by <code>ssh_host_*<\/code> host keys.<\/li>\n\n\n\n<li><strong>The identity of the connecting user<\/strong>, represented by user keys such as <code>id_ed25519<\/code>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>authorized_keys<\/code> file connects these two sides by telling the server which client public keys are trusted.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For Windows administrators, one additional Windows-specific detail is worth remembering:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\ProgramData\\ssh\\administrators_authorized_keys\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">is commonly used to authorize SSH public keys for administrator accounts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once the distinction between <strong>host keys<\/strong>, <strong>user keys<\/strong>, and <strong>authorized keys<\/strong> is clear, SSH configuration on Windows 11 becomes almost identical conceptually to SSH administration on Linux.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Windows 11 includes native support for OpenSSH, which means it can work both as an SSH client and as an SSH server. This makes it possible to manage Linux servers directly from Windows, connect remotely to Windows from Linux, transfer files with SCP\/SFTP, and use public-key authentication without installing third-party &hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[218],"tags":[242],"class_list":["post-6083","post","type-post","status-publish","format-standard","hentry","category-windows","tag-ssh"],"_links":{"self":[{"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/posts\/6083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/comments?post=6083"}],"version-history":[{"count":1,"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/posts\/6083\/revisions"}],"predecessor-version":[{"id":6084,"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/posts\/6083\/revisions\/6084"}],"wp:attachment":[{"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/media?parent=6083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/categories?post=6083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/tags?post=6083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}