Buat ssh: // tautan terbuka dengan Putty

15

Apakah ada cara untuk mengaitkan hyperlink di situs web yang dalam format ssh://10.10.10.10otomatis terbuka dan terhubung menggunakan Putty?

Saya mencari solusi yang akan bekerja lintas-browser (IE dan Firefox) dan mudah diimplementasikan. Saya tidak bisa memberikan instruksi kepada tim dukungan kami untuk melakukan pengeditan registri secara manual :(

Adakah yang tahu cara membuatnya?

Mistiry
sumber

Jawaban:

8

Ada garpu Putty bernama Kitty , situs web itu mencakup instruksi untuk melakukan apa yang Anda inginkan.

Itu memang melibatkan perubahan registri tetapi ini dilakukan dengan mengunduh file .reg dan mengkliknya di windows explorer (dengan hak admin, saya kira).

RedGrittyBrick
sumber
5

Sayangnya Putty tidak mengaitkan dirinya dengan ssh://URL.

Anda dapat mengaitkan aplikasi dengan protokol secara manual. Lihat artikel MSDN Mendaftarkan Aplikasi ke Skema URI .

Pada dasarnya Anda menambahkan kunci registri seperti:

[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\""

Meskipun di atas melewati seluruh URL ke baris perintah Putty. Dan Putty tidak mengerti ssh://awalan. Jadi, Anda harus menambahkan skrip pembungkus yang menghapus ssh://dan hanya melewati pengguna dan host ke Putty.

Untuk itu lihat:
https://johnsofteng.wordpress.com/2009/05/12/launch-putty-from-browser/


Cara lain menggunakan WinSCP . Ia mendaftar sendiri untuk menangani ssh://URL dan membuka sesi yang ditentukan oleh URL dalam Putty .

(Saya penulis WinSCP)

Martin Prikryl
sumber
2

Lihat ini: https://gist.github.com/sbiffi/11256316

Saya menginginkan solusi yang tidak perlu mengubah dempul.

Ini mengaitkan skrip visual basic ke ssh: // dan telnet: // URL, yang mem-parsing URL dan meluncurkan dempul menggunakan parameter standar seperti putty.exe -ssh-l login.

2 keuntungan tambahan: - Kata sandi dapat dikirimkan dalam URL juga untuk autentikasi otomatis - Tidak perlu mengubah dempul, sehingga disesuaikan dengan semua tambalan.

pengguna3568910
sumber
2
Saya menemukan cara untuk melakukannya hanya dengan kunci registri menggunakan PowerShellperintah. Ini dia
ubomb
@ubomb FYI, ada jawaban dari 2017 yang terlihat mirip dengan cmd.exeversi di pertanyaan Anda. Mungkin itu cukup berbeda untuk mengatasi keterbatasan yang Anda hadapi sebelum beralih ke PowerShell.
jpaugh
2

Berikut adalah kelas registri yang akan menghapus ssh: // dan mengekor (sebenarnya, semua) / dari URI sebelum meneruskannya ke Putty sehingga Putty dapat langsung membukanya:

Per Pengguna:

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:/=!\""

Dan, untuk semua orang di sistem:

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:/=!\""

Ubah jalur file berdasarkan kebutuhan Anda.

/ V: ON sama dengan 'SetLocal EnableDelayedExpansion'

/ c menjalankan perintah

Saya mengatur params ke paramater yaitu 'ssh: //domain.tld/'. Kemudian saya menghapus 'ssh: //' darinya dengan '! Params: ssh: // =!', Yang merupakan pengganti-cari untuk 'ssh: //' to '' pada params variabel. Saya menetapkan itu kembali ke params, sekarang params = 'domain.tld /'. Saya kemudian meneruskannya ke dempul dan melakukan pencarian-ganti baru untuk mengganti '/' dengan '' untuk menghapus garis miring yang dimasukkan Windows, meninggalkan 'domain.tld' yang dapat digunakan Putty.

Ini memungkinkan saya memproses semuanya dalam perintah yang dimasukkan dalam entri registri. Itu tidak melakukan sanitasi sama sekali dan mudah dieksploitasi (Kel. Ssh: // &¬epad membuka notepad) sehingga Anda mungkin ingin mengubah URI menjadi sesuatu yang hanya Anda ketahui.

Nathan Ladwig
sumber