Windows 10/11 – Alternative zu ssh-copy-id

Unter Windows 10 und auch 11 fehlt bislang der Befehl ssh-copy-id, um einen erzeugten Schlüssel auf dem Zielserver abzulegen. Nichtsdestotrotz ist es möglich, dass hinter dem Befehl versteckte Skript auf Windows-Basis nachzubauen, sodass man trotzdem seinen Key bequem auf das Linux-Gerät kopieren kann. In einem früheren Artikel habe ich gezeigt, wie man SSH unter Ubuntu aktiviert.

Attention: For the english version, click here!

Heute möchte ich dir zeigen, wie du ein Schlüsselpaar generierst und den Public Key unter Windows 10 bzw. 11 auf den Zielserver kopierst.

SSH-Schlüssel erzeugen

Zuerst erzeuge, falls noch nicht geschehen, einen neuen Key. Öffne dazu die CMD oder Powershell-Konsole und gebe folgenden Befehl ein:

ssh-keygen -t rsa

Danach sollte ein ähnlicher Output, wie dieser, bei dir entstehen:

Microsoft Windows [Version 10.0.22000.2176]
(c) Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\Dennis>ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\Dennis/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\Dennis/.ssh/id_rsa.
Your public key has been saved in C:\Users\Dennis/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:NaigsJfVJ/5pR2fHKArXdyi6TCf8J590M7uR3gb7pKk Dennis@Dennis-PC
The key's randomart image is:
+---[RSA 3072]----+
|                 |
|     .   .       |
|.   o o o o      |
| o + o + o . +   |
|. +   + S = * +  |
| .     = = * o.. |
|        X o . *o.|
|       + *...+.X.|
|        o .+E.*+o|
+----[SHA256]-----+

Public Key, ohne ssh-copy-id, kopieren

Als nächstes kopierst du den öffentlichen Schlüssel auf den Zielserver. Gebe hierfür den Pfad an, wo den Key im Schritt zuvor abgelegt hast. Im zweiten Teil des Befehls, gebe deinen User auf dem Zielserver mit der entsprechendenn IP-Adresse an:

type C:\Users\Dennis\.ssh\id_rsa.pub | ssh dennis@192.168.0.1 "cat >> .ssh/authorized_keys"

Daraufhin wird dich der Zielserver nach deinem Passwort fragen. Gebe es ein und der Schlüssel wird übertragen. Hierbei wird der Schlüssel der Datei ~/.ssh/authorized_keys des Users auf dem Zielserver angefügt. Nun kannst du dich auf dem Server, unter Verwendung des Schlüsselpaars, einloggen:

ssh dennis@192.168.0.1

Hier wieder dein persönliches Passwort eingeben und et voilá: Du hast SSH-Zugriff zu deinem Server – unter Verwendungs des erzeugten Schlüsselpaares, obwohl das Kommando ssh-copy-id unter Windows10/11 nicht verfügbar ist.


Windows 10/11 – Alternative to ssh-copy-id

On Windows 10 and also 11, the ssh-copy-id command is missing, which is used to copy a generated key to the target server. Nevertheless, it is still possible to replicate the functionality of the command by creating a hidden script based on Windows, allowing you to conveniently copy your key to the Linux device. In a previous article, I demonstrated how to enable SSH on Ubuntu. Today, I would like to show you how to generate a key pair and copy the public key to the target server using Windows 10 or 11.

Generate SSH key pair

First, if you haven’t done so already, generate a new key. Open the CMD or PowerShell console and enter the following command:

ssh-keygen -t rsa

After that, you should see output similar to this:

Microsoft Windows [Version 10.0.22000.2176]
(c) Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\Dennis>ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\Dennis/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\Dennis/.ssh/id_rsa.
Your public key has been saved in C:\Users\Dennis/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:NaigsJfVJ/5pR2fHKArXdyi6TCf8J590M7uR3gb7pKk Dennis@Dennis-PC
The key's randomart image is:
+---[RSA 3072]----+
|                 |
|     .   .       |
|.   o o o o      |
| o + o + o . +   |
|. +   + S = * +  |
| .     = = * o.. |
|        X o . *o.|
|       + *...+.X.|
|        o .+E.*+o|
+----[SHA256]-----+

Copy public key without using ssh-copy-id

Next, you need to copy the public key to the target server. Specify the path where you saved the key in the previous step. In the second part of the command, provide your username on the target server along with the corresponding IP address:

type C:\Users\Dennis\.ssh\id_rsa.pub | ssh dennis@192.168.0.1 "cat >> .ssh/authorized_keys"

The target server will then prompt you for your password. Enter it, and the key will be transferred. The key will be appended to the file ~/.ssh/authorized_keys of the user on the target server. Now you can log in to the server using the key pair:

ssh dennis@192.168.0.1

Enter your personal password again, and voilà: You have SSH access to your server using the generated key pair, even though the ssh-copy-id command is not available on Windows 10/11.

Show comments

Join the discussion

2 replies to “Windows 10/11 – Alternative zu ssh-copy-id”

  1. Chris says:

    Small typo: there is a backslash missing after „C:\Users\Dennis“

    1. Dennis says:Author

      Thank you, now it’s correct!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert