답변:
불행히도 PuTTY 는 URL 과 관련이 없습니다ssh://
.
응용 프로그램을 프로토콜과 수동으로 연결할 수 있습니다. MSDN 문서 URI 체계에 응용 프로그램 등록을 참조하십시오 .
기본적으로 다음과 같은 레지스트리 키를 추가합니다.
[HKEY_CLASSES_ROOT\ssh]
@="URL: SSH Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\ssh\DefaultIcon]
@="\"C:\\Program Files (x86)\\PuTTY\\PuTTY.exe\",0"
[HKEY_CLASSES_ROOT\ssh\shell]
[HKEY_CLASSES_ROOT\ssh\shell\open]
[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="\"C:\\Program Files (x86)\\PuTTY\\PuTTY.exe\""
위의 내용은 전체 URL을 PuTTY 명령 행에 전달하지만 그리고 PuTTY는 ssh://
접두사를 이해하지 못합니다 . 따라서 사용자를 제거하고 ssh://
사용자와 호스트 만 PuTTY에 전달 하는 랩퍼 스크립트를 추가해야합니다 .
이에 대해서는 https://johnsofteng.wordpress.com/2009/05/12/launch-putty-from-browser/ 를 참조하십시오.
다른 방법은 WinSCP를 사용하는 것입니다 . 이 핸들에 자신을 등록 ssh://
URL을 하고 퍼티의 URL에 의해 지정된 세션을 엽니 다 .
(저는 WinSCP의 저자입니다)
이것을보십시오 : https://gist.github.com/sbiffi/11256316
퍼티를 바꿀 필요가없는 솔루션을 원했습니다.
시각적 기본 스크립트를 ssh : // 및 telnet : // URL에 연결합니다.이 URL은 URL을 구문 분석하고 putty.exe -ssh -l login과 같은 표준 매개 변수를 사용하여 putty를 실행합니다.
– 자동 인증을 위해 URL에 암호를 전달할 수 있음 – 퍼티를 변경할 필요가 없으므로 모든 패치에 적용됩니다.
PuTTY에 전달하기 전에 URI에서 ssh : //와 후행 (실제로는 모두) /를 제거하여 PuTTY가 직접 열 수있는 레지스트리 클래스는 다음과 같습니다.
사용자 당 :
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\ssh]
@="URL:ssh Protocol"
"URL Protocol"="ssh://"
[HKEY_CURRENT_USER\Software\Classes\ssh\shell]
[HKEY_CURRENT_USER\Software\Classes\ssh\shell\open]
[HKEY_CURRENT_USER\Software\Classes\ssh\shell\open\command]
@="cmd /V:ON /c set params=%1 && set params=!params:ssh://=! && start \"PuTTY\" \"c:\\Program Files (x86)\\PuTTY\\putty.exe\" \"!params:/=!\""
그리고 시스템의 모든 사람들에게 :
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\ssh]
@="URL:ssh Protocol"
"URL Protocol"="ssh://"
[HKEY_CLASSES_ROOT\ssh\shell]
[HKEY_CLASSES_ROOT\ssh\shell\open]
[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="cmd /V:ON /c set params=%1 && set params=!params:ssh://=! && start \"PuTTY\" \"c:\\Program Files (x86)\\PuTTY\\putty.exe\" \"!params:/=!\""
필요에 따라 파일 경로를 변경하십시오.
/ V : ON은 'SetLocal EnableDelayedExpansion'과 같습니다.
/ c는 명령을 실행합니다
매개 변수를 'ssh : //domain.tld/'라는 매개 변수로 설정했습니다. 그런 다음 변수 매개 변수에서 'ssh : //'를 ''로 대체하는 '! params : ssh : // =!'로 'ssh : //'를 제거합니다. 다시 params에 할당합니다. 이제 params = 'domain.tld /'입니다. 그런 다음 퍼티에 전달하고 '/'를 ''로 바꾸어 다른 찾기 대체를 수행하여 Windows가 넣는 후행 슬래시를 제거하고 PuTTY가 사용할 수있는 'domain.tld'를 남겨 둡니다.
이를 통해 레지스트리 항목에 입력 한 명령으로 모두 처리 할 수 있습니다. 그것은 전혀 위생 처리를하지 않으며 쉽게 이용할 수 있습니다 (예 : ssh : // && notepad opens notepads) URI를 자신이 아는 것으로 변경하고 싶을 수도 있습니다.
PowerShell
명령을 사용하여 레지스트리 키로 수행하는 방법을 찾았습니다 . 여기 요