Historical interest only: marketplace-2014 implementation of SSH.
Go to file
Tony Garnock-Jones 832d95afe4 Switch to typeless marketplace branch 2014-08-06 21:25:41 -07:00
.gitignore Initial commit from racket-ssh 2013-05-10 17:01:46 -04:00
COPYING README and GPLv3 2013-05-21 12:01:58 -04:00
Makefile Initial commit from racket-ssh 2013-05-10 17:01:46 -04:00
README.md bitsyntax is now a package 2014-05-30 19:24:55 -04:00
TODO Initial commit from racket-ssh 2013-05-10 17:01:46 -04:00
aes-ctr.rkt README and GPLv3 2013-05-21 12:01:58 -04:00
asn1-ber.rkt bitsyntax is now a package 2014-05-30 19:24:55 -04:00
cook-port.rkt README and GPLv3 2013-05-21 12:01:58 -04:00
drive.sh Noddy driver for ease of repeatable runs 2014-02-19 16:42:34 -05:00
functional-queue.rkt README and GPLv3 2013-05-21 12:01:58 -04:00
mapping.rkt README and GPLv3 2013-05-21 12:01:58 -04:00
marketplace-support.rkt Switch to typeless marketplace branch 2014-08-06 21:25:41 -07:00
new-server.rkt Convert to extrasugar 2013-06-10 18:04:22 -04:00
oakley-group-2.pem Initial commit from racket-ssh 2013-05-10 17:01:46 -04:00
oakley-group-14.pem Initial commit from racket-ssh 2013-05-10 17:01:46 -04:00
oakley-groups.rkt README and GPLv3 2013-05-21 12:01:58 -04:00
sandboxes.rkt README and GPLv3 2013-05-21 12:01:58 -04:00
ssh-channel.rkt README and GPLv3 2013-05-21 12:01:58 -04:00
ssh-exceptions.rkt README and GPLv3 2013-05-21 12:01:58 -04:00
ssh-host-key.rkt bitsyntax is now a package 2014-05-30 19:24:55 -04:00
ssh-message-types.rkt bitsyntax is now a package 2014-05-30 19:24:55 -04:00
ssh-numbers.rkt README and GPLv3 2013-05-21 12:01:58 -04:00
ssh-session.rkt bitsyntax is now a package 2014-05-30 19:24:55 -04:00
ssh-transport.rkt bitsyntax is now a package 2014-05-30 19:24:55 -04:00
test-aes-ctr.rkt bitsyntax is now a package 2014-05-30 19:24:55 -04:00
test-asn1-ber.rkt bitsyntax is now a package 2014-05-30 19:24:55 -04:00
test-dsa-key Initial commit from racket-ssh 2013-05-10 17:01:46 -04:00

README.md

Racket SSH server (and client)

This is a Racket implementation of the SSH v2 protocol. It's written to work with Marketplace, but could readily be adapted to work with other I/O substrates. (It originally used Racket's sync and events directly.)

The code is not quite fully separated into a reusable library yet: at present, it is a hard-coded Racket REPL server. Changing this is straightforward, but low-priority right now. Patches welcome!

How to compile and run the code

You will need the latest prerelease version of Racket. Any version newer than or equal to Racket 5.3.4.10 should work. Nightly-build installers for Racket can be downloaded here.

Once you have Racket installed,

raco pkg install marketplace bitsyntax

to install Marketplace (note: will take a long time) and bitsyntax, and then

make

(or the equivalent, raco make new-server.rkt) to compile the SSH code. Once it has compiled successfully,

racket new-server.rkt

will start the server running on localhost port 2322. Log in to the server with

ssh localhost -p 2322

To enable debug output, try

MATRIX_LOG=info racket new-server.rkt

Copyright 2010, 2011, 2012, 2013 Tony Garnock-Jones tonyg@ccs.neu.edu

This file is part of marketplace-ssh.

marketplace-ssh is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

marketplace-ssh is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with marketplace-ssh. If not, see http://www.gnu.org/licenses/.