PuTTy 세션 목록을 내보내거나 가져 오는 방법은 무엇입니까?
이 작업을 수행하는 방법이 있습니까?
아니면 레지스트리에서 모든 레코드를 수동으로 가져와야합니까?
수출
cmd.exe
, 상승 된 프롬프트 필요 :
세션 만 :
regedit /e "%USERPROFILE%\Desktop\putty-sessions.reg" HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions
모든 설정 :
regedit /e "%USERPROFILE%\Desktop\putty.reg" HKEY_CURRENT_USER\Software\SimonTatham
Powershell :
세션 만 :
reg export HKCU\Software\SimonTatham\PuTTY\Sessions ([Environment]::GetFolderPath("Desktop") + "\putty-sessions.reg")
모든 설정 :
reg export HKCU\Software\SimonTatham ([Environment]::GetFolderPath("Desktop") + "\putty.reg")
수입
*.reg
파일을 두 번 클릭 하고 가져 오기를 승인하십시오.
다른 방법 :
cmd.exe
, 관리자 권한 명령 프롬프트가 필요 합니다.
regedit /i putty-sessions.reg
regedit /i putty.reg
PowerShell :
reg import putty-sessions.reg
reg import putty.reg
참고 : 사용자 이름으로 바꾸지 마십시오 SimonTatham
.
참고 : reg
현재 사용자의 바탕 화면에 파일 이 생성됩니다 .
참고 : 관련 SSH 키 는 내 보내지 않습니다 .
다른 솔루션을 시도했을 때이 오류가 발생했습니다.
Registry editing has been disabled by your administrator.
그것에 Phooey, 나는 말한다!
PuTTY 설정을 내보내고 가져 오기 위해 아래 powershell 스크립트를 모았습니다. 내 보낸 파일은 Windows .reg 파일이며 권한이 있으면 제대로 가져오고, 그렇지 않으면 import.ps1을 사용하여로드합니다.
경고 : 이와 같이 레지스트리를 엉망으로 만드는 것은 Bad Idea ™이며, 제가 무엇을하는지 잘 모르겠습니다. 위험을 감수하고 아래 스크립트를 사용하고 IT 부서에서 컴퓨터를 다시 이미지화하고 수행중인 작업에 대해 불편한 질문을 할 수 있도록 준비하십시오.
소스 머신에서 :
.\export.ps1
대상 머신에서 :
.\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"
비 관상적인 코드에 대해 사과드립니다. 저는 Powershell에 익숙하지 않습니다. 개선을 환영합니다!
실행을 시작한 다음 열기 드롭 다운 창에 regedit를 입력합니다.
Window 's Explorer
에서처럼 HKEY_CURRENT_USER \ Software \ SimonTatham으로 이동합니다.- 'SimonTatham'키 (디렉토리 아이콘)를 마우스 오른쪽 버튼으로 클릭하고 내보내기를 선택합니다
. 파일 이름 (예 : putty.reg)을 지정하고
나중에 사용할 수 있도록 위치에 저장합니다 . - 레지스트리 편집기를 닫습니다.
끝난.
설정을 가져 오려면 파일을 PuTTY Portable
사용할 수 있습니다 putty.reg
.
그냥이 경로에 넣으십시오 [path_to_Your_portable_apps]PuTTYPortable\Data\settings\putty.reg
. 프로그램이 가져옵니다.
오프라인 레지스트리 파일에서 Putty를 가져와야하는 사용자를 위해, 예를 들어 충돌 한 시스템에서 복구하거나 단순히 새 컴퓨터로 이동하고 이전 드라이브에서 데이터를 가져 오는 경우 언급 할 가치가있는 솔루션이 하나 더 있습니다.
http://www.nirsoft.net/utils/registry_file_offline_export.html
이 훌륭하고 무료 콘솔 응용 프로그램은 전체 레지스트리 또는 특정 레지스트리 키만 내 보냅니다. 제 경우에는 이전 드라이브의 레지스트리 파일을 내보내기 도구와 동일한 디렉토리로 복사 한 다음 관리자로 실행되는 CMD 창에서 다음 명령과 구문을 사용했습니다.
RegFileExport.exe NTUSER.DAT putty.reg "HKEY_CURRENT_USER \ Software \ SimonTatham"
.reg 파일을 가져오고 Putty를 시작하면 모든 것이 거기에있었습니다. 간단하고 효율적입니다.
이것은 위에서 언급 한 것보다 레지스트리 내보내기를 가져 오는 것이 훨씬 쉬웠습니다. + 간단히 :
- 파일을 마우스 오른쪽 버튼으로 클릭하고
- "병합"을 선택하십시오.
Win 7 Pro에서 챔피언처럼 일했습니다.
레지스트리를 엉망으로 만들고 싶지 않은 사람들을 위해 파일에 저장하는 변형 퍼티가 만들어졌습니다. 여기에 있습니다 : http://jakub.kotrla.net/putty/
퍼티 팀이 이것을 메인 배포판에 옵션으로 사용한다면 좋을 것입니다.
데이터를 .NET으로 가져 오는 bumerang 솔루션의 개선 사항 PuTTY portable
입니다.
내 보낸 putty.reg
(m0nhawk 솔루션 사용) 이동 PuTTYPortable\Data\settings\
만으로는 작동하지 않았습니다. PuTTY Portable은 파일을 백업하고 비어있는 새 파일을 만듭니다.
이 문제를 해결하려면 putty.reg
내 보낸 구성 putty.reg
을 PuTTYPortable\Data\settings\putty.reg
다음 줄 아래 새로 만든 구성으로 수동으로 복사하는 두 가지를 병합 하십시오 .
REGEDIT4
[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]
"RandSeedFile"="D:\\Programme\\PuTTYPortable\\Data\\settings\\PUTTY.RND"
예 :
한 사용자 계정에서 다른 사용자 계정으로 putty 구성 및 세션 구성을 전송하는 방법 ( 예 : 새 계정을 생성하고 이전 계정의 putty 세션 / 구성을 사용하려는 경우)
Process:
- Export registry key from old account into a file
- Import registry key from file into new account
Export reg key: (from OLD account)
- Login into the OLD account e.g. tomold
- Open normal 'command prompt' (NOT admin !)
- Type 'regedit'
- Navigate to registry section where the configuration is being stored e.g. [HKEY_CURRENT_USER\SOFTWARE\SimonTatham] and click on it
- Select 'Export' from the file menu or right mouse click (radio ctrl 'selected branch')
- Save into file and name it e.g. 'puttyconfig.reg'
- Logout again
Import reg key: (into NEW account)
Login into NEW account e.g. tom
Open normal 'command prompt' (NOT admin !)
Type 'regedit'
Select 'Import' from the menu
Select the registry file to import e.g. 'puttyconfig.reg'
Done
Note:
Do not use an 'admin command prompt' as settings are located under '[HKEY_CURRENT_USER...] 'and regedit would run as admin and show that section for the admin-user rather then for the user to transfer from and/or to.
The answer posted by @m0nhawk doesn't seem to work as I test on a Windows 7 machine. Instead, using the following scripts would export/import the settings of putty:
::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
m0nhawk's answer didn't work for me on Windows 10 - it required elevated command prompt and refused to emit a file.
This worked and didn't require elevation:
reg export HKEY_CURRENT_USER\Software\SimonTatham\PuTTY putty.reg
Using this method it is also possible to perform mass configuration changes, such as changing the all sessions font.
- Export to .reg
- Perform a search and replace over .reg
- Remove all sessions
- Import the new .reg
Extracted from here: http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html
I use putty connection manager where you create a database of sessions. It's easy to copy and import that database to other computers.
See this handy guide
There is a PowerShell script at ratil.life/first-useful-powershell-script-putty-to-ssh-config which can convert the sessions to a format that can be used in .ssh/config
. It can also be found on GitHub.
This excerpt contains the main guts of the code, and will print the resulting config directly to stdout:
# 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 }
}
}
If you, like me, installed new Windows and only after you remember about putty sessions, you can still import them, if you have old Windows hard drive or at least your old "home" directory backed up (C:\Users\<user_name>
).
In this directory there should be NTUSER.DAT
file. It is hidden by default, so you should enable hidden files in your Windows explorer or use another file browser. This file contains the HKEY_CURRENT_USER
branch of your old Windows registry.
To use it, you need to open regedit
on your new Windows, and select HKEY_USERS
key.
Then select File
-> Load Hive...
and find your old "home" directory of your old Windows installation. In this directory there should be NTUSER.DAT
file. It is hidden by default, so, if you didn't enable to show hidden files in your Windows explorer properties, then you can just manually enter file name into File name
input box of "Load Hive" dialog and press Enter. Then in the next dialog window enter some key name to load old registry into it. e.g. tmp
.
Your old registry's HKEY_CURRENT_USER
branch now should be accessible under HKEY_USERS\tmp
branch of your current registry.
Now export HKEY_USERS\tmp\Software\SimonTatham
branch into putty.reg
file, open this file in your favorite text editor and find-and-replace all HKEY_USERS\tmp
string with HKEY_CURRENT_USER
. Now save the .reg
file.
You can import now this file into your current Windows registry by double-clicking it. See m0nhawk's answer how to do this.
In the end, select HKEY_USERS\tmp
branch in the registry editor and then select File
-> Unload Hive...
and confirm this operation.
참고URL : https://stackoverflow.com/questions/13023920/how-to-export-import-putty-sessions-list
'code' 카테고리의 다른 글
android : layout_weight는 무엇을 의미합니까? (0) | 2020.10.02 |
---|---|
바이트 배열을 문자열로 변환하는 방법 (0) | 2020.10.02 |
컨트롤러에서 필터를 사용하는 방법은 무엇입니까? (0) | 2020.10.02 |
Eclipse, Subclipse 및 Subversive 용 SVN 플러그인의 장단점은 무엇입니까? (0) | 2020.10.02 |
위조, 조롱 및 스터 빙의 차이점은 무엇입니까? (0) | 2020.10.02 |