it-swarm.com.de

Wie exportiere / importiere ich eine PuTTY-Sitzungsliste?

Gibt es eine Möglichkeit, dies zu tun?

Oder muss ich jeden Datensatz manuell aus der Registry nehmen?

620
s.webbandit

Export

cmd.exe, erfordern erhöhte Eingabeaufforderung:

Nur Sitzungen:

regedit /e "%USERPROFILE%\Desktop\PuTTY-sessions.reg" HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions

Alle Einstellungen:

regedit /e "%USERPROFILE%\Desktop\PuTTY.reg" HKEY_CURRENT_USER\Software\SimonTatham

Power Shell:

Nur Sitzungen:

reg export HKCU\Software\SimonTatham\PuTTY\Sessions ([Environment]::GetFolderPath("Desktop") + "\PuTTY-sessions.reg")

Alle Einstellungen:

reg export HKCU\Software\SimonTatham ([Environment]::GetFolderPath("Desktop") + "\PuTTY.reg")

Importieren

Doppelklicken Sie auf die Datei *.reg und akzeptieren Sie den Import.

Alternative Wege:

cmd.exe, erfordern Eingabeaufforderung mit erhöhten Rechten:

regedit /i PuTTY-sessions.reg
regedit /i PuTTY.reg

Power Shell:

reg import PuTTY-sessions.reg
reg import PuTTY.reg

Hinweis : nicht ersetzenSimonTatham mit Ihrem Benutzernamen.

Hinweis : Es wird eine reg -Datei auf dem Desktop des aktuellen Benutzers erstellt.

Hinweis : Es werden nicht verwandte SSH-Schlüssel exportiert.

1134
m0nhawk

Als ich die anderen Lösungen ausprobierte, bekam ich diesen Fehler:

Registry editing has been disabled by your administrator.

Phooey dazu, sage ich!

Ich habe die folgenden Powershell-Skripte zum Exportieren und Importieren von PuTTY-Einstellungen zusammengestellt. Die exportierte Datei ist eine Windows-REG-Datei und wird ordnungsgemäß importiert, wenn Sie über die Berechtigung verfügen. Verwenden Sie andernfalls import.ps1, um sie zu laden.

Warnung: Es ist eine schlechte Idee, mit der Registrierung in Konflikt zu geraten, und ich weiß nicht wirklich, was ich tue. Verwenden Sie die folgenden Skripts auf eigenes Risiko, und stellen Sie sich darauf ein, dass Ihre IT-Abteilung ein Image Ihres Computers erstellt und Ihnen unangenehme Fragen zu Ihren Aktivitäten stellt.

Auf dem Quellcomputer:

.\export.ps1

Auf dem Zielcomputer:

.\import.ps1 > cmd.ps1
# Examine cmd.ps1 to ensure it doesn't do anything nasty
.\cmd.ps1

export.ps1

# All settings
$registry_path = "HKCU:\Software\SimonTatham"
# Only sessions
#$registry_path = "HKCU:\Software\SimonTatham\PuTTY\Sessions"
$output_file = "PuTTY.reg"

$registry = ls "$registry_path" -Recurse

"Windows Registry Editor Version 5.00" | Out-File PuTTY.reg
"" | Out-File PuTTY.reg -Append

foreach ($reg in $registry) {
  "[$reg]" | Out-File PuTTY.reg -Append
  foreach ($prop in $reg.property) {
    $propval = $reg.GetValue($prop)
    if ("".GetType().Equals($propval.GetType())) {
      '"' + "$prop" + '"' + "=" + '"' + "$propval" + '"' | Out-File PuTTY.reg -Append
    } elseif ($propval -is [int]) {
      $hex = "{0:x8}" -f $propval
      '"' + "$prop" + '"' + "=dword:" + $hex | Out-File PuTTY.reg -Append
    }
  }
  "" | Out-File PuTTY.reg -Append
}

import.ps1

$input_file = "PuTTY.reg"

$content = Get-Content "$input_file"

"Push-Location"
"cd HKCU:\"

foreach ($line in $content) { 
  If ($line.StartsWith("Windows Registry Editor")) {
    # Ignore the header
  } ElseIf ($line.startswith("[")) {
    $section = $line.Trim().Trim('[', ']')
    'New-Item -Path "' + $section + '" -Force' | %{ $_ -replace 'HKEY_CURRENT_USER\\', '' }
  } ElseIf ($line.startswith('"')) {
    $linesplit = $line.split('=', 2)
    $key = $linesplit[0].Trim('"')
    if ($linesplit[1].StartsWith('"')) {
      $value = $linesplit[1].Trim().Trim('"')
    } ElseIf ($linesplit[1].StartsWith('dword:')) {
      $value = [Int32]('0x' + $linesplit[1].Trim().Split(':', 2)[1])
      'New-ItemProperty "' + $section + '" "' + $key + '" -PropertyType dword -Force' | %{ $_ -replace 'HKEY_CURRENT_USER\\', '' }
    } Else {
      Write-Host "Error: unknown property type: $linesplit[1]"
      exit
    }
    'Set-ItemProperty -Path "' + $section + '" -Name "' + $key + '" -Value "' + $value + '"' | %{ $_ -replace 'HKEY_CURRENT_USER\\', '' }
  }
}

"Pop-Location"

Entschuldigung für den nicht idiomatischen Code, ich bin nicht sehr vertraut mit Powershell. Verbesserungen sind willkommen!

40
dwurf
  1. Starten Sie Run und geben Sie dann Folgendes in das Dropdown-Fenster Open ein: regedit

  2. Navigieren Sie wie im Windows Explorer zu:
    HKEY_CURRENT_USER\Software\SimonTatham

  3. Klicken Sie mit der rechten Maustaste auf den 'SimonTatham'-Schlüssel (Verzeichnissymbol) und wählen Sie Exportieren
    Geben Sie der Datei einen Namen (z. B.) PuTTY.reg und speichern Sie sie an Ihrem Speicherort für
    später verwenden.
  4. Schließen Sie den Registrierungseditor.

Getan.

38

Wenn Sie Einstellungen in PuTTY Portable importieren möchten, können Sie die Datei PuTTY.reg verwenden.

Schreiben Sie es einfach auf diesen Pfad [path_to_Your_portable_apps]PuTTYPortable\Data\settings\PuTTY.reg. Programm wird es importieren

34
bumerang

Für diejenigen unter Ihnen, die PuTTY aus einer Offline-Registrierungsdatei importieren müssen, z. Wenn Sie sich von einem Systemabsturz erholen oder einfach auf einen neuen Computer umziehen und Daten von diesem alten Laufwerk abrufen, gibt es eine weitere erwähnenswerte Lösung:

http://www.nirsoft.net/utils/registry_file_offline_export.html

Diese großartige und kostenlose Konsolenanwendung exportiert die gesamte Registrierung oder nur einen bestimmten Registrierungsschlüssel. In meinem Fall habe ich einfach die Registrierungsdatei von einem alten Laufwerk in dasselbe Verzeichnis wie das Export-Tool kopiert und dann den folgenden Befehl und die folgende Syntax im CMD-Fenster als Administrator ausgeführt:

RegFileExport.exe NTUSER.DAT PuTTY.reg "HKEY_CURRENT_USER\Software\SimonTatham"

Nach dem Import der .reg-Datei und dem Start von PuTTY war alles da. Einfach und effizient.

20
monsune

Das Importieren des Registrierungsexports war so viel einfacher als oben angegeben. + Einfach:

  1. rechtsklick auf die Datei und
  2. wähle "Zusammenführen"

Arbeitete wie ein Champion auf Win 7 Pro.

13
DudeGoingDeaf

Für diejenigen, die sich nicht mit der Registrierung anlegen möchten, wurde eine Variante von PuTTY erstellt, die in einer Datei gespeichert wird. Es befindet sich hier: http://jakub.kotrla.net/PuTTY/

Es wäre schön, wenn das PuTTY-Team dies als Option in die Hauptverteilung aufnehmen würde.

12
Jason K.

Beispiel:
So übertragen Sie die PuTTY-Konfiguration und Sitzungskonfiguration von einem Benutzerkonto auf ein anderes, z. Wenn Sie ein neues Konto erstellt haben und die PuTTY-Sitzungen/-Konfigurationen des alten Kontos verwenden möchten

Prozess:
- Exportiert den Registrierungsschlüssel von einem alten Konto in eine Datei
- Registrierungsschlüssel aus Datei in neues Konto importieren

Export reg key: (von ALTEM Konto)

  1. Melden Sie sich beim ALTEN Konto an, z. Tomold
  2. Öffne die normale Eingabeaufforderung (NICHT admin!)
  3. Tippe 'regedit'
  4. Navigieren Sie zum Registrierungsabschnitt, in dem die Konfiguration gespeichert wird, z. [HKEY_CURRENT_USER\SOFTWARE\SimonTatham] und klicken Sie darauf
  5. Wählen Sie "Exportieren" aus dem Dateimenü oder klicken Sie mit der rechten Maustaste (Optionsfeld "Ausgewählter Zweig").
  6. In Datei speichern und benennen, z. 'puttyconfig.reg'
  7. Melden Sie sich erneut ab

Registrierungsschlüssel importieren: (in NEUES Konto)

  1. Melden Sie sich bei einem NEUEN Konto an, z. tom

  2. Öffne die normale Eingabeaufforderung (NICHT admin!)

  3. Tippe 'regedit'

  4. Wählen Sie im Menü die Option "Importieren"

  5. Wählen Sie die zu importierende Registrierungsdatei aus, z. 'puttyconfig.reg'

  6. Getan

Anmerkung:
Verwenden Sie keine 'Admin-Eingabeaufforderung', da sich die Einstellungen unter '[HKEY_CURRENT_USER ...]' befinden und regedit als admin ausgeführt wird und diesen Abschnitt eher für den Admin-Benutzer als für den Benutzer zum Übertragen anzeigt und/oder zu.

9
Mungo

Eine Verbesserung der Lösung von Bumerang zum Importieren von Daten in PuTTY portable.

Das einfache Verschieben von exportiertem PuTTY.reg (mit m0nhawk-Lösung) nach PuTTYPortable\Data\settings\ hat nicht funktioniert. PuTTY Portable sichert die Datei und erstellt eine neue leere.

Um dieses Problem zu umgehen, führen Sie beide PuTTY.reg zusammen und kopieren Sie die Konfiguration, die Sie migrieren möchten, manuell von Ihrem exportierten PuTTY.reg in den neu erstellten PuTTYPortable\Data\settings\PuTTY.reg unter den folgenden Zeilen.

REGEDIT4

[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]
"RandSeedFile"="D:\\Programme\\PuTTYPortable\\Data\\settings\\PuTTY.RND"
9
L. G.

Die Antwort von @ m0nhawk scheint nicht zu funktionieren, da ich sie auf einem Windows 7-Computer teste. Wenn Sie stattdessen die folgenden Skripte verwenden, werden die Einstellungen von PuTTY exportiert/importiert:

::export
@echo off
set regfile=PuTTY.reg
pushd %~dp0

reg export HKCU\Software\SimonTatham %regfile% /y

popd

-

::import
@echo off
pushd %~dp0
set regfile=PuTTY.reg

if exist %regfile% reg import %regfile%

popd
7
Meow

die Antwort von m0nhawk funktionierte unter Windows 10 nicht - es war eine Eingabeaufforderung mit erhöhten Rechten erforderlich, und die Ausgabe einer Datei wurde abgelehnt.

Dies funktionierte und erforderte keine Erhöhung:

reg export HKEY_CURRENT_USER\Software\SimonTatham\PuTTY putty.reg
7
fiat

Mit dieser Methode können Sie auch Änderungen an der Massenkonfiguration vornehmen, z. B. die Schriftart für alle Sitzungen ändern.

  1. Export nach .reg
  2. Führen Sie eine Suche durch und ersetzen Sie sie durch .reg
  3. Entfernen Sie alle Sitzungen
  4. Importieren Sie das neue .reg

Von hier extrahiert: http://www.sysadmit.com/2015/11/PuTTY-exportar-configuracion.html

6
YumUrli

Es gibt ein PowerShell-Skript unter ratil.life/first-useful-powershell-script-PuTTY-to-ssh-config , das die Sitzungen in ein Format konvertieren kann, das in .ssh/config verwendet werden kann. . Es kann auch auf GitHub gefunden werden.

Dieser Auszug enthält die wichtigsten Informationen des Codes und gibt die resultierende Konfiguration direkt an stdout aus:

# Registry path to PuTTY configured profiles
$regPath = 'HKCU:\SOFTWARE\SimonTatham\PuTTY\Sessions'

# Iterate over each PuTTY profile
Get-ChildItem $regPath -Name | ForEach-Object {

    # Check if SSH config
    if (((Get-ItemProperty -Path "$regPath\$_").Protocol) -eq 'ssh') {
        # Write the Host for easy SSH use
        $Host_nospace = $_.replace('%20', $SpaceChar)
        $hostLine =  "Host $Host_nospace"

        # Parse Hostname for special use cases (Bastion) to create SSH hostname
        $puttyHostname = (Get-ItemProperty -Path "$regPath\$_").HostName
        if ($puttyHostname -like '*@*') {
            $sshHostname = $puttyHostname.split("@")[-1]
            }
        else { $sshHostname = $puttyHostname }
        $hostnameLine = "`tHostName $sshHostname"   

        # Parse Hostname for special cases (Bastion) to create User
        if ($puttyHostname -like '*@*') {
            $sshUser = $puttyHostname.split("@")[0..($puttyHostname.split('@').length - 2)] -join '@'
            }
        else { $sshHostname = $puttyHostname }
        $userLine = "`tUser $sshUser"   

        # Parse for Identity File
        $puttyKeyfile = (Get-ItemProperty -Path "$regPath\$_").PublicKeyFile
        if ($puttyKeyfile) { 
            $sshKeyfile = $puttyKeyfile.replace('\', '/')
            if ($prefix) { $sshKeyfile = $sshKeyfile.replace('C:', $prefix) }
            $identityLine = "`tIdentityFile $sshKeyfile"
            }

        # Parse Configured Tunnels
        $puttyTunnels = (Get-ItemProperty -Path "$regPath\$_").PortForwardings
        if ($puttyTunnels) {
            $puttyTunnels.split() | ForEach-Object {

                # First character denotes tunnel type
                $tunnelType = $_.Substring(0,1)
                # Digits follow tunnel type is local port
                $tunnelPort = $_ -match '\d*\d(?==)' | Foreach {$Matches[0]}
                # Text after '=' is the tunnel destination
                $tunnelDest = $_.split('=')[1]

                if ($tunnelType -eq 'D') {
                    $tunnelLine = "`tDynamicForward $tunnelPort $tunnelDest"
                }

                ElseIf ($tunnelType -eq 'R') {
                    $tunnelLine = "`tRemoteForward $tunnelPort $tunnelDest"
                }

                ElseIf ($tunnelType -eq 'L') {
                    $tunnelLine = "`tLocalForward $tunnelPort $tunnelDest"
                }

            }

        # Parse if Forward Agent is required
        $puttyAgent = (Get-ItemProperty -Path "$regPath\$_").AgentFwd
        if ($puttyAgent -eq 1) { $agentLine = "`tForwardAgent yes" }

        # Parse if non-default port
        $puttyPort = (Get-ItemProperty -Path "$regPath\$_").PortNumber
        if (-Not $puttyPort -eq 22) { $PortLine = "`tPort $puttyPort" }

        }

        # Build output string
        $output = "$hostLine`n$hostnameLine`n$userLine`n$identityLine`n$tunnelLine`n$agentLine`n"

        # Output to file if set, otherwise STDOUT
        if ($outfile) { $output | Out-File $outfile -Append}
        else { Write-Host $output }
    }

}
3
mwfearnley

Ich benutze PuTTY Connection Manager wo Sie eine Datenbank von Sitzungen erstellen. Es ist einfach, diese Datenbank zu kopieren und auf andere Computer zu importieren.

Siehe diese handliche Anleitung

3
jasonoriordan