Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Open terminal from html using href ssh:// url with command line options

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 commands (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 commands):

<a href='ssh://[email protected]'>SSH</a>

Is this possible in HTML? I'll also accept answers that use Javascript.

like image 489
hagope Avatar asked Feb 28 '18 18:02

hagope


People also ask

How do I open a HTML file in Linux terminal?

I think what you want is simply this. And simply type: browse (your file name) without the parentheses of course. This will run your HTML file in Firefox browser.


Video Answer


1 Answers

I have looked at multiple sources and tried different combinations and come to below understanding

  • There was no standard defined for the SSH URI to specify commands. 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 command
  • 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 commands and other things you want

Doing it using iTerm

You create a new profile and enable SSH URL handler in the same

SSH handling

So used below sample page

<html>
<body>
<a href="ssh://vagrant@vm/ls -alh">ls -alh</a>
</body>
</html>

And below command in my iTerm SSH profile

/usr/bin/ssh $$USER$$@$$HOST$$  $(echo $$PATH$$ | tr -d '/')

And the result was

Result

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 command on remote host

https://unix.stackexchange.com/questions/75668/why-doesnt-the-ssh-command-follow-rfc-on-uri

https://groups.google.com/forum/#!topic/iterm2-discuss/r0Rk_WZaGWk

http://www.rubicode.com/Software/Bundles.html#RCDefaultApp

https://superuser.com/questions/379342/setting-iterm2-as-the-default-terminal-osx-lion

https://apple.stackexchange.com/questions/46666/how-to-access-a-clicked-url-in-a-url-handler-application-created-in-automator

https://support.shotgunsoftware.com/hc/en-us/community/posts/209485898-Launching-External-Applications-using-Custom-Protocols-under-OSX

like image 77
Tarun Lalwani Avatar answered Oct 19 '22 11:10

Tarun Lalwani