-
Notifications
You must be signed in to change notification settings - Fork 83
FaQ
No, SSHv2 is the only supported SSH version currently supported.
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.
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.
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.
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.
SSHy aims to be fully functional on recent versions of all major web browsers.
Modern smartphones should be able to run SSHy however it is not recommended usage and there may be issues regarding keyboard input.
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
.
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
.
Currently only password
authentication is implemented. There are plans to look into the viability of keyboard interactive and key based authentication.
Currently only a minimal subset of the SSH protocol is implemented in order to allow for pseudo-terminals to be created.