PuTTYでssh://リンクを開く


15

ssh://10.10.10.10PuTTYを使用して自動的に開いて接続する形式のWebサイト上のハイパーリンクを関連付ける方法はありますか?

クロスブラウザ(IEとFirefox)で動作し、実装が簡単なソリューションを探しています。サポートチームにレジストリの編集を手動で実行するよう指示することはできません:(

誰もがそれを機能させる方法を知っていますか?

回答:


8

Kittyという名前のPuttyフォークがあります。このWebサイトには、必要なことを正確に行うための手順が含まれています。

レジストリの変更も含まれますが、これらは.regファイルをダウンロードし、Windowsエクスプローラーで(クリックすると管理者権限で)クリックすることで実行されます。


5

残念ながら、PuTTY は自身を関連付けません。ssh://URLに。

アプリケーションをプロトコルに手動で関連付けることができます。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をPuTTYのではURLで指定されたセッションを開きます

(私はWinSCPの著者です)


2

これを参照してください:https : //gist.github.com/sbiffi/11256316

パテを変更する必要のないソリューションが必要でした。

Visual Basicスクリプトをssh://およびtelnet:// URLに関連付けます。これは、URLを解析し、putty.exe -ssh -l loginなどの標準パラメーターを使用してputtyを起動します。

2つの追加の利点:–パスワードはURLで自動認証にも渡すことができます–パテを変更する必要がないため、すべてのパッチに適合します。


2
PowerShellコマンドを使用してレジストリキーだけでそれを行う方法を見つけました。どうぞ。
-ubomb

@ubomb参考までに、あなたの質問のバージョンに似た2017年の回答がありcmd.exeます。おそらく、PowerShellに切り替える前に直面した制限を克服するのに十分な違いがあります。
jpaugh

2

PuTTYに直接渡すことができるように、PuTTYに渡す前にURIからssh://および末尾(実際にはすべて)/を削除するレジストリクラスを次に示します。

ユーザーごと:

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はコマンドを実行します

paramsを 'ssh://domain.tld/'であるパラメーターに設定します。次に、 '!params:ssh:// =!'を使用して 'ssh://'を削除します。これは、変数paramsの 'ssh://'から ''へのfind-replaceです。これをparamsに割り当てます。今はparams = 'domain.tld /'です。次に、それをputtyに渡し、別のfind-replaceを実行して、 '/'を ''に置き換えて、Windowsが置く末尾のスラッシュを削除し、PuTTYが使用できる 'domain.tld'を残します。

これにより、レジストリエントリに入力されたコマンドですべてを処理できます。何らかのサニタイズは一切行わず、簡単に悪用されます(例:ssh:// && notepadはメモ帳を開きます)。したがって、URIを自分だけが知っているものに変更することもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.