I'd like to create a url link that launches terminal (from webpage or browser such as chrome or safari) and ssh's to a box and launches remote mands (for example ls
), in terminal it would look like:
ssh [email protected] 'ls'
I've tried:
<a href='ssh://[email protected] "ls"'>SSH with ls</a>
but this does nothing. and this works (without any mands):
<a href='ssh://[email protected]'>SSH</a>
Is this possible in HTML? I'll also accept answers that use Javascript.
I'd like to create a url link that launches terminal (from webpage or browser such as chrome or safari) and ssh's to a box and launches remote mands (for example ls
), in terminal it would look like:
ssh [email protected] 'ls'
I've tried:
<a href='ssh://[email protected] "ls"'>SSH with ls</a>
but this does nothing. and this works (without any mands):
<a href='ssh://[email protected]'>SSH</a>
Is this possible in HTML? I'll also accept answers that use Javascript.
Share Improve this question asked Feb 28, 2018 at 18:47 hagopehagope 5,5317 gold badges39 silver badges52 bronze badges 7- You would need to have the user set what program the browser instructs to handle SSH links – Luca Kiebel Commented Feb 28, 2018 at 19:00
-
thats fine, assuming they are using
Terminal.app
on Mac os – hagope Commented Feb 28, 2018 at 19:16 - This isn't really a programming question. If you search for "ssh url handler" and maybe add the target browser & platform, you'll find various pages discussing how to set this up. – Kenster Commented Feb 28, 2018 at 19:25
- @Kenster no luck with that search – hagope Commented Feb 28, 2018 at 20:42
-
This is not possible using
Terminal.app
. It is still possible withiTerm
if that works for you and not without a specific profile in iTerm. So by default you can't make it work across system without some configuration – Tarun Lalwani Commented Mar 14, 2018 at 9:27
3 Answers
Reset to default 8 +50I have looked at multiple sources and tried different binations and e to below understanding
- There was no standard defined for the SSH URI to specify mands. So it is up to the process taking the input to understand how to use it
- By default
Terminal.app
handles the SSH url and there is no documentation that it supports mand - The app receiving the URL, doesn't get the URL as an argument, it needs to fetch it using some event. You can refer here for the same
- You can configure iTerm to handle SSH handler and access the URL that was passed as describe here
- You can create a custom app that handles the URL and does support mands and other things you want
Doing it using iTerm
You create a new profile and enable SSH URL handler in the same
So used below sample page
<html>
<body>
<a href="ssh://vagrant@vm/ls -alh">ls -alh</a>
</body>
</html>
And below mand in my iTerm
SSH profile
/usr/bin/ssh $$USER$$@$$HOST$$ $(echo $$PATH$$ | tr -d '/')
And the result was
Of course you want to run a python script or something and pass it these values and let it do such things for additional functionalities. But this shows how you could achieve such a setup
Key References
url scheme for ssh: Calling mand on remote host
https://unix.stackexchange./questions/75668/why-doesnt-the-ssh-mand-follow-rfc-on-uri
https://groups.google./forum/#!topic/iterm2-discuss/r0Rk_WZaGWk
http://www.rubicode./Software/Bundles.html#RCDefaultApp
https://superuser./questions/379342/setting-iterm2-as-the-default-terminal-osx-lion
https://apple.stackexchange./questions/46666/how-to-access-a-clicked-url-in-a-url-handler-application-created-in-automator
https://support.shotgunsoftware./hc/en-us/munity/posts/209485898-Launching-External-Applications-using-Custom-Protocols-under-OSX
I'm not very sure if this will help, but have you considered using a proxy / bridge to connect to server using SSH? For example: https://github./novnc/websockify
Websockify is a WebSocket to TCP proxy/bridge. This allows a browser to connect to any application/server/service.
This way instead of relying on SSH Client, you can directly municate with server from your JS code.
For Mac users on Big Sur 11.6 you can in fact do this with Apple apps. A simple test will show.
- Open up Notes.app or TextEdit.app and create some text.
- Select a word or sentence and hit Edit → Attach link (⌘K)
- Create the url as
ssh://user@host
orssh://host
in the dialog.
Viola!