Getting started with 1Password for your growing team, or refining your setup? Our Secured Success quickstart guide is for you.
Forum Discussion
pcorreia
8 months agoNew Contributor
Is it possible to select the SSH Client I want to use for ssh:// entries?
The way my company uses 1Password is by creating entries for firewalls located at our clients. Simple user and password entries that have the https and ssh links on them. I use Xshell, and have w...
- 8 months ago
We're working on better Windows support. This is what we currently have on the nightly channel (and soon in the beta too): you can choose between launching it with Windows Terminal (which uses wt.exe under the hood), which is the default, or you can specify a custom launch command. I don't have Xshell.exe installed myself, but you could try if this works:
pcorreia
8 months agoNew Contributor
Ok, I managed to create a handler for ssh URLs.
But it looks like 1Password doesn't use that handler. So, a bit frustrated... I needed to know how 1Password calls an external program to SSH. Is it directly? Is it a different handler?
I'll paste the Reg file I created for the Xshell handler, it might be helpful for someone else.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\telnet]
@="URL:Telnet Protocol"
"EditFlags"=dword:00000002
"FriendlyTypeName"="@ieframe.dll,-907"
"URL Protocol"=""
"BrowserFlags"=dword:00000008
[HKEY_CLASSES_ROOT\telnet\DefaultIcon]
@="C:\\Program Files (x86)\\NetSarang\\Xshell 7\\Xshell.exe,0"
[HKEY_CLASSES_ROOT\telnet\shell]
@=""
[HKEY_CLASSES_ROOT\telnet\shell\open]
[HKEY_CLASSES_ROOT\telnet\shell\open\command]
@="\"C:\\Program Files (x86)\\NetSarang\\Xshell 7\\Xshell.exe\" %1"
[HKEY_CLASSES_ROOT\ssh]
@="URL:SSH Protocol"
"EditFlags"=dword:00000002
"FriendlyTypeName"="@ieframe.dll,-907"
"URL Protocol"=""
"BrowserFlags"=dword:00000008
[HKEY_CLASSES_ROOT\ssh\DefaultIcon]
@="C:\\Program Files (x86)\\NetSarang\\Xshell 7\\Xshell.exe,0"
[HKEY_CLASSES_ROOT\ssh\shell]
@=""
[HKEY_CLASSES_ROOT\ssh\shell\open]
[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="\"C:\\Program Files (x86)\\NetSarang\\Xshell 7\\Xshell.exe\" %1"
[HKEY_CLASSES_ROOT\putty]
@="URL:PuTTY Protocol"
"EditFlags"=dword:00000002
"FriendlyTypeName"="@ieframe.dll,-907"
"URL Protocol"=""
"BrowserFlags"=dword:00000008
[HKEY_CLASSES_ROOT\putty\DefaultIcon]
@="C:\\Program Files (x86)\\NetSarang\\Xshell 7\\Xshell.exe,0"
[HKEY_CLASSES_ROOT\putty\shell]
@=""
[HKEY_CLASSES_ROOT\putty\shell\open]
[HKEY_CLASSES_ROOT\putty\shell\open\command]
@="\"C:\\Program Files (x86)\\NetSarang\\Xshell 7\\Xshell.exe" -url %1"
bpence
3 days agoNew Member
Writing directly to HKEY_CLASSES_ROOT\ssh\shell\open\command is a very old school way of trying to handle the ssh protocol URLs. More modern applications instead will declare themselves capable of handling them and register URL Associations for the types of URLs supported, then allow the 'Default Applications' to actually choose the application. Windows, for good reason does not allow just any app take ownership of a protocol a different app was chosen for.
I know because I'm old school and I was recently banging my head against this particular brick wall. The documentation is a bit difficult to find and a lot of examples you find online are outdated ones similar to the one above. I went around in circles with ChatGPT before settling on the correct solution, but effectively it's this:
- Register your application under SOFTWARE\RegisteredApplications
- Create entries under HKLM\SOFTWARE\Clients\StartMenuInternet declaring capabilities and URL Associations
- Create entries under HKLM\Software\Classes\YourApplication for your application's DefaultIcon, shell\open\command, etc...
- Open windows 'default apps' screen to let the user choose. You cannot choose for them: exec "ms-settings:defaultapps?appid=<registeredAppName>"
From what I can tell, on Windows 11 at least, 1Password adheres to the windows default application for ssh pretty well.