Skip to content
stuicey edited this page Jul 12, 2017 · 1 revision

Does SSHy support SSH-1?

No, SSHv2 is the only supported SSH version currently supported.

How does SSHy work?

SSHy relies on multiple libraries including SJCL(Stanford JavaScript Crypto Library) for AES encryption and JSBN(Basic JavaScript Big Number) to represent extremely large primes.

When a connection is opened SSHy generates packets based on RFC 4253. The generated packets are sent across the Websocket to the Websocket proxy server.

Are my credentials stored anywhere?

No, when you input your credentials they are not sent anywhere until you attempt to connect to the SSH server. At this point key exchange has completed so your username and password are encrypted and sent to the SSH server for authentication.

As SSHy implements end-to-end encryption your credentials will only appear as cipher-text at all intermediary points between your web browser and the destination SSH server.

How are Host Keys stored?

SSHy stores host keys in your browser's localStorage; data in this area is never transferred to the web server and is only accessible by the domain that wrote the data.

How are Host Keys verified?

During the key exchange process the browser's localStorage is accessed and probed for a matching IP and port. If a match is found then the saved host key is compared with the host key extracted during key exchange. In cases where no match is found or the host key does not match the extracted host key the user is asked to confirm this is expected or SSHy disconnects from the SSH server.

What browsers does SSHy support?

SSHy aims to be fully functional on recent versions of all major web browsers.

Will SSHy work on my phone?

Modern smartphones should be able to run SSHy however it is not recommended usage and there may be issues regarding keyboard input.

What terminal type does SSHy use?

Currently SSHy requests an xterm instance after authentication. The graphical interface and control sequence handling for this is provided by xterm.js. There is support for xterm-color-256 however as the colour pallets consist of 16 colours this mode is not used.

You can change the default terminal type by modifying the get_pty() call in transport.js.

How do I copy and paste to and from SSHy?

All modern web browsers should be able to copy by using the right click menu of the browser.

In Google Chrome and other chromium based browsers implement a 'lazy' paste where the paste event is fired regardless if there is a target element. This means that you should be able to paste anywhere on the page from the right click menu. Additionally you can paste by pressing ctrl + shift + v.

In Firefox the paste event is not fired unless there is a content-editable element in the DOM tree (which would break xtermjs). So instead there is an editable text-area inside the settings menu that can be pasted into. Text present here gets sent to the SSH server and consequently pastes text into xterm.js.

What authentication modes are implemented in SSHy?

Currently only password authentication is implemented. There are plans to look into the viability of keyboard interactive and key based authentication.

How do I open a SSH tunnel or port forward?

Currently only a minimal subset of the SSH protocol is implemented in order to allow for pseudo-terminals to be created.