# SSH ID unter Windows kopieren

Du hast unter Windows mehrere Möglichkeiten, dir das Linux-Tool **ssh-copy-id** zu “klonen” bzw. dessen Funktionalität nachzubauen:

---

## 1. Über Git Bash oder WSL direkt das Original nutzen

1. **Git for Windows** installieren (git-scm.com).
2. Git Bash öffnen – dort ist `ssh-copy-id` in der Regel bereits enthalten:
    
    ```bash
    ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host
    
    ```
    
    Das kopiert deinen Public Key automatisch nach `~/.ssh/authorized_keys` auf dem Zielserver.
3. **Oder WSL (Windows Subsystem for Linux)**:
    
    
    - In PowerShell als Admin:
        
        ```powershell
        wsl --install
        
        ```
    - Danach unter Ubuntu/etc. per
        
        ```bash
        sudo apt update && sudo apt install openssh-client
        ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host
        
        ```

---

## 2. Eigenes Powershell-Skript als „ssh-copy-id“ nachbauen

Wenn du keine Unix-Umgebung installieren willst, kannst du in deinem PowerShell-Profil (`$PROFILE`) eine Funktion anlegen:

```powershell
function Copy-SshKey {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [string]$UserAtHost,                      # z.B. "alice@server.example.com"
        [string]$KeyFile = "$HOME\.ssh\id_rsa.pub" # Pfad zum Public Key
    )

    # Key einlesen
    $pubKey = Get-Content $KeyFile -Raw

    # Auf dem Remote-Host das .ssh-Verzeichnis anlegen und Key anhängen
    ssh $UserAtHost "mkdir -p ~/.ssh && echo '$pubKey' >> ~/.ssh/authorized_keys"
}

```

1. Öffne PowerShell und lade dein Profil neu mit:
    
    ```powershell
    . $PROFILE
    
    ```
2. Führe dann aus:
    
    ```powershell
    Copy-SshKey -UserAtHost "alice@server.example.com"
    
    ```

---

## 3. Das offizielle Skript aus GitHub klonen

Es gibt ein reines Shell-Skript von Kevin Burke, das du einfach unter Windows in Git Bash oder WSL nutzen kannst:

1. Verzeichnis anlegen und klonen:
    
    ```powershell
    mkdir C:\tools\ssh-copy-id
    cd C:\tools\ssh-copy-id
    git clone https://github.com/kevinburke/ssh-copy-id.git .
    
    ```
2. (Optional) `C:\tools\ssh-copy-id` in deine PATH-Umgebungsvariable aufnehmen, damit `ssh-copy-id` überall verfügbar ist.
3. In Git Bash oder WSL aufrufen:
    
    ```bash
    ssh-copy-id -i ~/.ssh/id_ed25519.pub alice@server.example.com
    
    ```

---

### Zusammenfassung

- **Einfachster Weg:** Git Bash oder WSL installieren und das vorhandene `ssh-copy-id` nutzen.
- **Windows-Native:** Mit einer kleinen PowerShell-Funktion das Key-Kopieren automatisieren.
- **Skript-Klon:** Das offizielle Shell-Skript aus GitHub klonen und in PATH legen.

Wähle die Methode, die am besten zu deinem Workflow passt!