Etikettarkiv: ssh

SSH-klient i webbläsaren och bra dokumentation för OpenSSL

Secure Shell (SSH) är ett protokoll för säker anslutning mot datorer över Internet. SSH är även namnet på den terminalapplikation som implementerar protokollet för att ge interaktiv, säker access. SSH används ofta för att tunnla andra protokoll. Bilden nedan visar hur SSH används för att tunnla X11-protkollet så att fönster på fjärrmaskinen visas på den lokala maskinen.

SSH som tunnlar X11-protokollet.

Det finns även flera andra applikationer som implementerar ssh-protokollet. Ofta byggs dessa på bibliotek som libssh2.

Gate one är en implementation av en SSH-klient skriven i HTML5 som körs direkt i webbläsaren. Gate One. Några fördelar med Gate One enligt dess webbplats är:

  • No browser plugins required!
  • Supports multiple simultaneous terminal sessions. As many as your hardware can handle.
  • Users can re-connect to their running terminals whenever they like from anywhere.
  • Can be embedded into other applications.
  • Includes powerful plugin system that supports plugins written in Python, JavaScript, and even CSS (yes, you can write a CSS-only plugin).
  • The Gate One server can be stopped & started without users losing their running terminal applications (even SSH sessions stay connected!). In essence, worry-free upgrades!
  • The SSH plugin allows users to duplicate sessions without having to re-enter their username and password (it re-uses the existing SSH tunnel).
  • Provides users with the ability to play back and save/share their terminal sessions via a self-contained HTML playback file.
  • Similarly, supports server-side logging, recording, and video-like playback of user sessions.
  • It can even log to syslog to support whatever centralized logging system you want.
  • Keberos-based Single Sign-on support is included. It even works with Active Directory. Other authentication options are available as well.

Det finns ingen testsida för Gate One, däremot en demofilm på Vimeo:

Gate One Beta Demo from Dan McDougall on Vimeo.

Gate One är ett exmpel på hur webbläsaren allt mer blir en ersättning för det lokala datorskrivbordet och den grafiska miljön. Men även om Gate One inte beror av några plugins utan bara websockets krävs det en del på serversidan för att få det hela att snurra. Dokumentationen för Gate One beskriver mer om vad som krävs för att sätta upp Gate One som terminalgränssnitt för din webbtjänst.

Ett bibliotek som Gate One använder är OpenSSL (via Python-wrapperns PyOpenSSL.

OpenSSL och dess underliggande bibliotek libssl är en mycket kraftfull verktyslåda som används i applikationer för att skapa säker kommunikation, som implementation av specifika algoritmer (krypto, hashfunktioner, protokoll) samt för som interaktivt verktyg. Behöver du på något sätt arbeta med säkerhet är det en stark rekommendation att lära dig mer om OpenSSL.

En bra start för detta kan vara den här användarhjälpen (HOWTO) som visar hur du kan lösa specifika problem med OpenSSL. Bra, tydlig och klart läsvärd.

libssh2 1.2.8 släppt

I går släpptes en ny version av ssh-klientbiblioteket libssh2. Version 1.2.8 innehåller i första hand buggfixar, men inkluderar även en del nya funktioner samt en klart förbättrad prestanda för sftp. Ändringslistan ser ut som följer:

Changes:
* added libssh2_free, libssh2_channel_get_exit_signal and libssh2_session_handshake
* SFTP read/write remade and now MUCH faster, especially on high latency connections
* added new examples: ssh2_echo.c, sftp_append.c and sftp_write_sliding.c
* userauth: derive publickey from private
* NEWS: now generated from git

Bug fixes:
* Support unlimited number of host names in a single line of the known_hosts file.
* fix memory leak in userauth_keyboard_interactive()
* fix memory leaks (two times cipher_data) for each sftp session
* session_startup: manage server data before server identification
* SCP: allow file names with bytes > 126
* scp_recv: improved treatment of channel_read() returning zero
* libssh2_userauth_authenticated: make it work as documented
* variable size cleanup: match internal variable sizes better with the sizes of the fields used on the wire
* channel_request_pty_size: fix reqPTY_state
* sftp_symlink: return error if receive buffer too small
* sftp_readdir: return error if buffer is too small
* libssh2_knownhost_readfile.3: clarify return value
* configure: stop using the deprecated AM_INIT_AUTOMAKE syntax
* Fixed Win32 makefile which was now broken at resource build
* kex_agree_hostkey: fix NULL pointer derefence
* _libssh2_ntohu64: fix conversion from network bytes to uint64
* ssize_t: proper typedef with MSVC compilers
* zlib: Add debug tracing of zlib errors
* decomp: increase decompression buffer sizes