GitHub - Shea690901/lpcssh: SSH in LPC

SSH login for DGD, version 0.4
Version 0.1 written by Felix A. Croes  <felix@dworkin.nl>
Released into the public domain.

DGD 1.2.105 or later is required, and either the kernel library or Melville.


KERNEL LIBRARY INSTALLATION:

 - Move these files to /usr/System of your mudlib.
 - If you already have a file /usr/System/initd.c, add the following line
   to its create function:

	compile_object("~/sys/kernel_sshd");

   Otherwise, just rename the supplied file initd.ssh to initd.c.
 - By default, sshd will listen on the first binary port.  To change this,
   edit the line in sys/kernel_sshd.c that looks like this:

	userd->set_binary_manager(0, this_object());

   and change the 0 to a indicate a different port.
 - The sshd object will set the ticks limit to 3,000,000 for System.  This is
   about the mininum required to perform the public key crypto functions.
   If you already have a higher tick limit for your mudlib, remove from
   sys/sshd.c the line that looks like this:

	rsrc::rsrc_set_limit("System", "ticks", 3000000);

 - Run the command 'ssh-keygen -t dsa' and save the files in the directory
   'keys'.  The created files should be named 'id_dsa' and 'id_dsa.pub'.  If
   you skip this step, default cryptographic keys included with this release
   will be used.
 - In your DGD configuration file, make sure that the array_size limit is at
   least 4000.
 - Start DGD, and login using the following command:

	ssh -T -p 6048 <hostname>

   -T means not to use a pseudo-tty, -p 6048 connects to the binary port which
   is 6048 by default (this can be changed by editing the mud.dgd configuration
   file) and <hostname> is the name of the host to connect to.  If you're
   running ssh on the same host as DGD, just use 'localhost'.
 - Though users without programming rights in the kernel library do not have
   a password, ssh will still prompt them for one -- just hit the return key.
 - You won't see anything while logging in (that includes the room you login
   to and the players in it).
 - The file ~username/.ssh/authorized_keys (within the mudlib) is used for
   authentication, if it exists.


MELVILLE INSTALLATION:

 - Make a subdirectory ssh in the mudlib /system directory, and move these
   files into it.
 - in the file include/ssh.h, change '# define KERNEL_GLUE' into
   '# define MELVILLE_GLUE'.
 - Apply the diffs in diffs/melville.
 - As with the kernel library, it only works well for pre-existing users and
   you won't see anything when you login.