A pure dart SSH implementation based on dartssh

  Dart

DartSSH 2

dartssh2 is a pure dart SSH implementation based on dartssh, with bug fixes, up-to-date dependencies and sound null safety.

dartssh2 providing first-class tunnelling primitives.

Feature support

KeysEd25519, ECDSA, RSA
KEXX25519DH, ECDH, DHGEX, DH
CipherAES-CTR, AES-CBC
MACMD5, SHA
Compressionnot yet supported
ForwardingTCP/IP, Agent
Tunneling drop-ins forSocket, WebSocket, package:http

Try

# Install the `dartssh` command.
dart pub global activate dartssh2

# Then use `dartssh` as regular `ssh` command.
dartssh user@example.com

If the dartssh command can not be found after installation, you might need to set up your path.

Quick start – SSH client

Click to see more:

import 'package:dartssh2/dartssh2.dart';

Quick start – SSH server

Click to see more:

import 'package:dartssh2/dartssh2.dart';

Example

SSH client: example/dartssh.dart

SSH server: example/dartsshs.dart

Roadmap

  •  Fix broken tests
  •  Sound null safety
  •  Redesign API to allow starting multiple sessions. In progress…
  •  SFTP

References

  • RFC 4251 The Secure Shell (SSH) Protocol Architecture
  • RFC 4252 The Secure Shell (SSH) Authentication Protocol
  • RFC 4253 The Secure Shell (SSH) Transport Layer Protocol
  • RFC 4254 The Secure Shell (SSH) Connection Protocol
  • RFC 4255 Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints
  • RFC 4256 Generic Message Exchange Authentication for the Secure Shell Protocol (SSH)

Contribute on GitHub