Building the SSH Server

The source files for the server, when unpacked from the zip file, all reside in one directory. To compile and build the executables:
  1. Edit ssl_location.mms and change the lines that being "!ssllib =" and "!sslinc =", removing the "!" and modifying the values to reflect the correct directories for your SSLeay installaction's library and header (include) files.

  2. Compile/link the executables using one of the following commands:
    Alpha:
    $ MMS all
    $ @BUILD_SSH_SERVER.COM
    VAX:
    $ MMS/macro=vax_build=1 all
    $ @BUILD_SSH_SERVER-VAX.COM

Once built, several more steps must be taken to complete the installation.


Description of Server Images

A successful build will produce 6 VMS executable images and, on Alphas, a shareable image:
SSH_SERVER.EXE
Main server image, runs in a detached process created by ssh_server_startup.com. Server uses DECthreads to concurrently serve multiple SSH client and connections. The sole command line argument for this program is the name of the parameter file, which contains the site-specific configuration settings for the server.

RSA_ENGINE.EXE
This program runs in a sub-process of the server process and handles the computationally intensive RSA decryption used to exchange a new connection's session key. Minimizing the computation the main server process does in this way allows the server to run at a higher priority without adversely affecting the rest of the system.

KEY_GENERATOR.EXE
This program runs in a sub-process of the server process and handles periodic generation of new RSA server keys (skey.pem). Key generation is CPU intensive, running it in a separate process allows the system administrator the option of increasing the server process priority with adverse impact while the key generation takes place.

INITIATOR.EXE
This program runs in a sub-process of the server process and handles creating the user login processes (under client's username) for client connections. Using a separate process avoids needing to deal with any complex interactions between the $PERSONA services and DECthreads.

SSH_LOGINOUT.EXE
This program is invoked by the SSH_LOGIN.COM procedure and handles the privileged operations done by the user process to complete the SSH login. The SYSUAF entry for the user is fixed up to reflect the correct 'last login' date for interactive/non-interactive login. If the SSH client requested X11 forwarding, this program exits with a "SET DISPLAY" command to set the user's X display to the server's fake X11 server.

SETHOST_SSH.EXE
Primitive client program for exercising SSH server when other client's aren't available.

Command line syntax:

$ sethost_ssh [-l username] [-p port] [-c cipher] host [command]

SSHCRYPTOSHR (alpha only)
Shareable image that provides the common cryptographic routines used by several of the other executable images. This is the only image that references the SSLeay cryptographics library directly.