846 Stimmen

Wie exportiere/importiere ich die Liste der PuTTY-Sitzungen?

Gibt es eine Möglichkeit, dies zu tun?

Oder muss ich jeden Datensatz manuell aus der Registry nehmen?

10voto

L. G. Punkte 9377

Eine Verbesserung der Lösung von bumerang zum Import von Daten nach PuTTY portable .

Einfaches Verschieben exportierter putty.reg (mit m0nhawk-Lösung) zu PuTTYPortable\Data\settings\ hat nicht funktioniert. PuTTY Portable sichert die Datei und erstellt eine neue leere Datei.

Um dieses Problem zu umgehen, fügen Sie beide putty.reg Kopieren Sie die zu migrierende Konfiguration manuell aus Ihrer exportierten putty.reg zum 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"

9voto

Meow Punkte 3805

Die von @m0nhawk gepostete Antwort scheint nicht zu funktionieren, da ich auf einem Windows 7-Rechner teste. Stattdessen würde die Verwendung der folgenden Skripte die Einstellungen von putty exportieren/importieren:

::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

6voto

YumUrli Punkte 61

Mit dieser Methode ist es auch möglich, umfangreiche Konfigurationsänderungen vorzunehmen, wie z. B. die Änderung der Schriftart aller Sitzungen.

  1. Exportieren nach .reg
  2. Suchen und Ersetzen über .reg durchführen
  3. Alle Sitzungen entfernen
  4. Importieren Sie die neue .reg

Auszug von hier: http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html

4voto

mwfearnley Punkte 2743

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 . Es kann auch gefunden werden auf GitHub .

Dieser Auszug enthält den Hauptteil des Codes und gibt die resultierende Konfiguration direkt auf 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 }
    }

}

3voto

jasonoriordan Punkte 863

Ich benutze putty Verbindungsmanager wo Sie eine Datenbank mit Sitzungen erstellen. Es ist einfach, diese Datenbank auf andere Computer zu kopieren und zu importieren.

Ver esto praktischer Leitfaden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X