Note: the SSLeay and OpenSSL libraries can be built with NO_RSA defined and in conjunction with SSLv3 and DSA certs allow royalty free secure communications anywhere in the world (assuming strong crypto is legal :-).
Actually, SSL support is added via my own sslfd libaray which allows appliactions like ftpd,telnet and r* to be converted to use SSL with minimal effort and fully supports the NO_RSA setup.
The /etc/services entry for SSLrshd should be:
sshell 614/tcp SSLshellSSLrshd(8) is the server, it uses a set of auth files which are backwards compatible with the /etc/ssl.users from Tim Hudson's SSLtelnet to determine if access should be granted.
The client must always supply a certificate and the server certificate is optional this is achieved by reversing the SSL_{accept,connect} roles between the server and client.
SSLrshd looks up the provided certificate in /etc/ssl.users and if the requested local user or root is found as a target user, then and only then is permission granted.
Note that none of SSLrshd's clients (SSLrsh(1), SSLrcp and SSLrdist) run set-uid, nor does SSLrshd generally care where the requests come from. The exception is the case where the client provides a host certificate (Common Name field is fully qualified hostname). If the CN contains '.'s and can be found in the DNS it is assumed to be a host certificate and will only be accepted from the host it was issued to and then only if an appropriate entry appears in an auth file.
For the truely paranoid, SSLrshd supports chroot()ing similar to the BSD ftpd. If the target user is listed in /etc/rshchroot as in user[:dir] then SSLrshd will chroot(dir) or to the user's home directory. It will then do the normal chdir(pwd->pw_dir) so you can have a common chroot dir and home dirs under that.
I've not done a lot of mods to the r* man pages, but all of the clients take the same -z options as SSLtelnet plus a few others. Or look for SSL_CERT,SSL_KEY,SSL_CIPHER in the environment - again nothing runs set-uid so nothing to attack. The -z options apply to SSLr*, SSLtelnet and stelnet:
echo "sleep 60; date" | SSLrsh sundoes not work, then recompile SSLrshd with -DSHUTOWN_HACK
To build, you must unpack the rdist distribution somewhere (see here for where to get it) and make ssl/bin/rdist/src and ssl/bin/rdistd/src symlinks to it, the Makefiles should do the rest.
Note that Linux will not build rdistd (6.1.3) unless you move rdist*/include/paths.h aside.
If all else fails, rdist.patch shows what you need to do.