windows - saved - extra putty export sessions
¿Cómo exportar/importar listas de sesiones de PuTTy? (14)
Exportar
cmd.exe
, requiere indicador elevado:
Solo sesiones:
regedit /e "%USERPROFILE%/Desktop/putty-sessions.reg" HKEY_CURRENT_USER/Software/SimonTatham/PuTTY/Sessions
Todos los ajustes:
regedit /e "%USERPROFILE%/Desktop/putty.reg" HKEY_CURRENT_USER/Software/SimonTatham
Potencia Shell:
Solo sesiones:
reg export HKCU/Software/SimonTatham/PuTTY/Sessions ([Environment]::GetFolderPath("Desktop") + "/putty-sessions.reg")
Todos los ajustes:
reg export HKCU/Software/SimonTatham ([Environment]::GetFolderPath("Desktop") + "/putty.reg")
Importar
Haga doble clic en el *.reg
y acepte la importación.
Formas alternativas:
cmd.exe
, requiere símbolo del sistema elevado:
regedit /i putty-sessions.reg
regedit /i putty.reg
Potencia Shell:
reg import putty-sessions.reg
reg import putty.reg
Nota : no reemplace SimonTatham
con su nombre de usuario.
Nota : reg
un archivo de reg
en el escritorio del usuario actual.
Nota : No exportará claves SSH relacionadas.
¿Hay alguna forma de hacer esto?
¿O tengo que llevar manualmente todos los registros del registro?
Ejecute Ejecutar, luego escriba en la ventana desplegable Abrir: regedit
Vaya a, al igual que en el Explorador de Windows:
HKEY_CURRENT_USER / Software / SimonTatham- Haga clic derecho en la tecla ''SimonTatham'' (icono de directorio), seleccione Exportar
Asigne al archivo un nombre (por ejemplo) putty.reg y guárdelo en su ubicación para
uso posterior - Cierre el Editor del Registro.
Hecho.
Cuando probé las otras soluciones obtuve este error:
Registry editing has been disabled by your administrator.
¡Fooey a eso, digo!
Reuní los siguientes scripts de powershell para exportar e importar configuraciones de PuTTY. El archivo exportado es un archivo .reg de Windows y se importará limpiamente si tiene permiso; de lo contrario, use import.ps1 para cargarlo.
Advertencia : jugar con el registro de esta manera es una mala idea ™, y realmente no sé lo que estoy haciendo. Utilice los siguientes scripts bajo su propio riesgo y prepárese para que su departamento de TI vuelva a crear una imagen de su equipo y le haga preguntas incómodas sobre lo que estaba haciendo.
En la máquina de origen:
./export.ps1
En la máquina de destino:
./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"
Disculpas por el código no idiomático, no estoy muy familiarizado con Powershell. ¡Las mejoras son bienvenidas!
Esto fue mucho más fácil importar la exportación del registro que lo que se indica anteriormente. + Simplemente
- clic derecho sobre el archivo y
- seleccione "Fusionar"
Trabajó como un campeón en Win 7 Pro.
Hay un script de PowerShell en ratil.life/first-useful-powershell-script-putty-to-ssh-config que puede convertir las sesiones a un formato que se puede usar en .ssh/config
. También se puede encontrar en GitHub .
Este extracto contiene las entrañas principales del código e imprimirá la configuración resultante directamente en la salida estándar:
# 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 }
}
}
La respuesta de m0nhawk no funcionó para mí en Windows 10, requirió una línea de comandos elevada y se negó a emitir un archivo.
Esto funcionó y no requirió elevación:
reg export HKEY_CURRENT_USER/Software/SimonTatham/PuTTY putty.reg
La respuesta publicada por @ m0nhawk no parece funcionar como lo pruebo en una máquina con Windows 7. En su lugar, el uso de los siguientes scripts exportaría / importaría la configuración de la masilla:
::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
Para aquellos de ustedes que necesitan importar Putty desde un archivo de registro fuera de línea, por ejemplo, cuando se están recuperando de un sistema bloqueado o simplemente se están moviendo a una nueva máquina y extrayendo datos de esa unidad antigua, hay una solución más que vale la pena mencionar:
http://www.nirsoft.net/utils/registry_file_offline_export.html
Esta gran aplicación de consola gratuita exportará todo el registro o solo una clave de registro específica. En mi caso, simplemente copié el archivo de registro de una unidad antigua al mismo directorio que la herramienta exportadora y luego utilicé el siguiente comando y la sintaxis en la ventana de CMD que se ejecuta como administrador:
RegFileExport.exe NTUSER.DAT putty.reg "HKEY_CURRENT_USER / Software / SimonTatham"
Después de importar el archivo .reg e iniciar Putty, todo estaba allí. Sencillo y eficiente.
Para aquellos que no quieren meterse con el registro, se ha creado una variación de masilla que guarda en el archivo. Se encuentra aquí: http://jakub.kotrla.net/putty/
Sería bueno si el equipo de masilla tomara esto como una opción en la distribución principal.
Si desea importar configuraciones en PuTTY Portable
, puede usar el archivo putty.reg
.
Simplemente póngalo en esta ruta [path_to_Your_portable_apps]PuTTYPortable/Data/settings/putty.reg
. El programa lo importará
Una mejora en la solución de bumerang para importar datos a PuTTY portable
.
Simplemente mover putty.reg
exportado (con la solución m0nhawk) a PuTTYPortable/Data/settings/
no funcionó. PuTTY Portable copia el archivo y crea uno nuevo vacío.
Para solucionar este problema, putty.reg
ambos putty.reg
copiando manualmente la configuración que desea migrar desde su putty.reg
exportado al PuTTYPortable/Data/settings/putty.reg
recién creado debajo de las líneas siguientes.
REGEDIT4
[HKEY_CURRENT_USER/Software/SimonTatham/PuTTY]
"RandSeedFile"="D://Programme//PuTTYPortable//Data//settings//PUTTY.RND"
Usando este método también es posible realizar cambios de configuración masivos, como cambiar la fuente de todas las sesiones.
- Exportar a .reg
- Realizar una búsqueda y reemplazar sobre .reg
- Eliminar todas las sesiones
- Importar el nuevo .reg
Extraído de aquí: http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html
Yo uso el administrador de conexión de masilla donde creas una base de datos de sesiones. Es fácil copiar e importar esa base de datos a otras computadoras.
Vea esta guía práctica
Ejemplo:
Cómo transferir la configuración de la masilla y la configuración de la sesión de una cuenta de usuario a otra, por ejemplo, cuando se crea una nueva cuenta y desea utilizar las sesiones / configuraciones de la masilla de la cuenta antigua
Proceso:
- Exportar clave de registro de cuenta antigua a un archivo
- Importar clave de registro desde archivo a nueva cuenta
Clave de registro de exportación: (desde cuenta OLD)
- Inicie sesión en la cuenta OLD, por ejemplo, tomold
- Abra el ''indicador de comando'' normal (NO admin!)
- Tipo ''regedit''
- Vaya a la sección de registro donde se almacena la configuración, por ejemplo, [HKEY_CURRENT_USER / SOFTWARE / SimonTatham] y haga clic en ella
- Seleccione ''Exportar'' en el menú de archivo o haga clic con el botón derecho del ratón (ctrl de radio ''rama seleccionada'')
- Guárdelo en el archivo y asígnele el nombre, por ejemplo, ''puttyconfig.reg''
- Cerrar sesión de nuevo
Importar clave de registro: (en NUEVA cuenta)
Inicie sesión en una cuenta nueva, por ejemplo, tom
Abra el ''indicador de comando'' normal (NO admin!)
Tipo ''regedit''
Seleccione ''Importar'' del menú
Seleccione el archivo de registro para importar, por ejemplo, ''puttyconfig.reg''
Hecho
Nota:
No use un ''indicador de comando de administrador'' ya que las configuraciones se encuentran en ''[HKEY_CURRENT_USER ...]'' y regedit se ejecutará como administrador y mostrará esa sección para el usuario administrador en lugar de para que el usuario realice la transferencia y / o para.