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

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

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

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

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

答え1

パテフォークというものがありますキティウェブサイトには説明書あなたがまさに望んでいることを実現するためです。

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

答え2

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://プレフィックスを理解しません。そのため、プレフィックスを削除してユーザーとホストのみを PuTTY に渡すラッパー スクリプトを追加する必要がありますssh://

それについては以下を参照してください:
https://johnsofteng.wordpress.com/2009/05/12/launch-putty-from-browser/


もう一つの方法はウィンSCP。 それssh://URLを処理するために登録するそしてPuTTYでURLで指定されたセッションを開きます

(私はWinSCPの作者です)

答え3

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

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

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

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

答え4

以下は、URI を PuTTY に渡す前に 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はコマンドを実行します

params を 'ssh://domain.tld/' というパラメータに設定します。次に、'!params:ssh://=!' を使用して 'ssh://' を削除します。これは、変数 params で 'ssh://' を '' に置換する検索です。これを params に代入し直すと、params = 'domain.tld/' になります。次に、これを putty に渡して別の検索と置換を実行し、'/' を '' に置換して、Windows が追加する末尾のスラッシュを削除し、PuTTY が使用できる 'domain.tld' を残します。

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

関連情報