Gibt es eine Möglichkeit, dies zu tun?
Oder muss ich jeden Datensatz manuell aus der Registry nehmen?
Gibt es eine Möglichkeit, dies zu tun?
Oder muss ich jeden Datensatz manuell aus der Registry nehmen?
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"
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
Mit dieser Methode ist es auch möglich, umfangreiche Konfigurationsänderungen vorzunehmen, wie z. B. die Änderung der Schriftart aller Sitzungen.
Auszug von hier: http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html
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 }
}
}
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 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.