WinSCP 는 사이트 정보 또는 비밀번호를 어디에 저장합니까? 문서 및 설정에서 찾을 수 없습니다 ...
WinSCP 는 사이트 정보 또는 비밀번호를 어디에 저장합니까? 문서 및 설정에서 찾을 수 없습니다 ...
답변:
구성 파일은 Windows 레지스트리 또는 휴대용 버전을 사용하는 경우 INI 파일에 저장됩니다. ( 문서를 참조하십시오. ) 레지스트리 위치는 다음과 같습니다.
HKEY_CURRENT_USER\Software\Martin Prikryl\WinSCP 2
Export
환경 설정 대화 상자 에서을 눌러 설정을 INI 파일로 언제든지 내보낼 수 있습니다 .
비밀번호는 텍스트로 저장되지 않고 인코딩됩니다. 해독하기는 어렵지만 불가능하지는 않습니다.
이 방법을 시도하십시오.
저장된 세션에 로그인
세션 메뉴로 이동
URL 생성을 클릭하십시오
사용자 이름 및 비밀번호 옵션 만 확인하십시오 (현재 디렉토리 경로가 필요한 경우이 옵션도 클릭하십시오)
URL / Script / .Net Assembly의 여러 옵션이 있으며 원하는 항목을 선택하십시오.
클립 보드로 복사를 클릭하십시오.
사용자 이름과 비밀번호가 포함됩니다.
그게 다야.
이것은 간단한 Cesar's
답변 의 간단한 버전이며 암호는 여전히 SCP에서 작동한다고 가정합니다.
echo.cmd
다음을 포함 하는 배치 파일을 작성하십시오 .
echo %*
pause
데스크탑과 같은 적절한 장소에 놓으십시오.
WinSCP를 시작하고 사이트에 연결하십시오. 클릭하십시오 Options -> Preferences
:
환경 설정 대화 상자에서로 이동하십시오 Integration -> Applications
. 이전에 PuTTY 경로에 있던 것을 새로 만든 echo.cmd
배치 파일 의 경로로 바꿉니다 . 옵션도 선택하십시오 :
Remember session password and pass it to PuTTY (SSH)
를 클릭하십시오 OK
.
이제 WinSCP 내에서 PuTTY를 시작하십시오.
이전에 저장된 비밀번호가 화면에 표시됩니다!
새 C # 콘솔 응용 프로그램을 만든 후 다음 프로그램을 입력하십시오.
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
foreach (var str in args)
System.Console.WriteLine(str);
System.Console.ReadLine();
}
}
}
C # 프로그래머가 아닌 경우 익숙한 다른 언어로 쉽게 수행 할 수 있습니다. 요점은 단순히 프로그램에 인수로 전달 된 값을 인쇄하는 것입니다. 친숙한 스크립트를 사용하여 수행 할 수도 있습니다.
이제 프로그램을 컴파일하고 바이너리 (예 : ConsoleApplication8.exe)를 가져옵니다. 데스크탑과 같은 적절한 장소에 놓으십시오.
암호가 여전히 작동하면 WinSCP를 시작하고 사이트에 연결하십시오. 옵션-> 환경 설정을 클릭하십시오.
환경 설정 대화 상자에서 통합-> 응용 프로그램으로 이동하십시오. 이전에 PuTTY 경로에 있던 내용을 새로 만든 바이너리의 경로로 바꿉니다. 또한 "세션 암호 기억 및 PuTTY (SSH)로 전달"옵션을 선택하십시오.
확인을 클릭 한 다음 WinSCP 내에서 PuTTY를 시작해보십시오.
이전에 저장된 비밀번호가 화면에 표시됩니다.
매우 이상한 유스 케이스가 있었으며 암호를 복구해야했지만 시스템 관리자가 내 환경을 잠 가서 화이트리스트에없는 실행 파일을 실행할 수 없었으며 .cmd 파일이 포함되었습니다.
내 솔루션은 Putty 명령 줄을 메모장 ++로 가리 키는 것이 었습니다.
"파일 -pw"가 존재하지 않는다고 말했을 때 파일을 만들면 아니오라고 말합니다.
그런 다음 "파일 {암호가 여기에 표시됩니다}라는 메시지가 표시되지 않습니다. 암호를 만들어야합니다"라고 표시하고 다시 말하면 암호는 일반 텍스트로 표시됩니다.
ps
은 암호가 명령 행에 지정된 경우에도 하위 프로세스에 대해 암호가 일정 시간 동안 계속 실행되면 표시됩니다.)
약간 다른 문제를 조사하는 동안이 답변에 왔지만 도움이되었고 내가 한 일을 공유하고 싶었습니다.
내 문제는 Windows XP에서 Active Directory 도메인 내에서 저장된 암호로 WinSCP를 사용하고 있었고 변경되었다는 것입니다. 새로운 Active Directory 도메인을 사용하면 사용자 프로필도 변경되어 WinSCP가 저장된 로그온 프로필을 표시하지 않습니다.
이전 WinSCP 로그온 프로파일을 복구하기 위해 다음을 수행했습니다.
regedit
응용 프로그램을 시작하고의 이름을 가진 키를 검색했습니다 Martin Prikryl
. 몇 가지 잘못된 일치 후 올바른 세션 데이터로 보이는 키를 찾았습니다.
그런 다음 regedit
export 명령을 사용하여 WinSCP 세션 레지스트리 키를 텍스트 파일로 내보냈습니다 .
다음으로 텍스트 파일에서 내 보낸 텍스트를 수정 HKEY_CURRENT_USER
하여 소프트웨어 하위 키 앞의 완전한 키의 시작으로 사용 했습니다.
다음 regedit
으로을 사용하여 현재 사용자의 WinSCP에서 사용하는 Windows 레지스트리 키를 수정하기 위해 데이터를 가져 왔습니다.
(1) 이전 사용자 프로필에 대한 WinSCP 로그온 세션 데이터를 찾았습니다. (2) 해당 데이터의 복사본을 만들었습니다. (3) 가져 오기를 regedit
통해 현재 사용자를 수정할 수 있도록 Windows 레지스트리 키 를 수정했습니다. (4) 현재 사용자 프로필에 대한 WinSCP 레지스트리 항목을 수정하는 데이터를 가져 왔습니다.
이 절차를 수행 한 후 WinSCP를 사용하여 웹 서버에 액세스 할 수있었습니다.
이것이 간단하고 효과가 있었던 몇 가지 이유가있을 것입니다. 우선이 PC는 한 사람 만 사용했기 때문에 허위 일치를 줄이기 위해 공유하지 않았습니다. 두 번째로 PC에 대한 관리자 권한이있었습니다. 세 번째는 Windows 7/8이 아니라 Windows XP였습니다.
WinSCP 인용 FAQ WinSCP 세션에 저장된 비밀번호를 복구 할 수 있습니까? :
비밀번호를 복구하는 한 가지 방법은 환경 설정에서 비밀번호 로깅을 사용하는 것입니다. 비밀번호 및 기타 민감한 정보 환경 설정 옵션을 참조 하십시오 . 그런 다음 세션 로그 파일을 검사하여 저장된 비밀번호를 찾으십시오.
. 2017-06-13 07:41:11.313 ---------------------------------------------------------------
. 2017-06-13 07:41:11.313 WinSCP Version 5.9.5 (Build 7441) (OS 10.0.15063 - Windows 10)
. 2017-06-13 07:41:11.313 Configuration: HKCU\Software\Martin Prikryl\WinSCP 2\
. 2017-06-13 07:41:11.313 Log level: Normal, Logging passwords
...
. 2017-06-13 07:41:11.313 ---------------------------------------------------------------
. 2017-06-13 07:41:11.313 Session name: My server (Site)
. 2017-06-13 07:41:11.313 Host name: example.com (Port: 22)
. 2017-06-13 07:41:11.313 User name: martin (Password: mypassword, Key file: No)
세션 URL / 코드 생성 기능을 남용 하여 저장된 비밀번호를 검색 할 수도 있습니다. 비밀번호의 특수 기호가 이스케이프 될 수 있습니다. 큰 따옴표 만 이스케이프 처리되는 (지원되는 모든 언어) .NET 어셈블리 코드 에서 비밀번호가 손상되지 않았을 가능성이 큽니다 .