It's in the FAQ under section 9. I'll make sure I add your changes
later today.

-Anne

On Thu, May 25, 2000 at 10:35:00AM -0700, Gregor Mosheh wrote:
> 
> Here's the HOWTO I wrote up on setting up hostbased authentication. I
> don't know whether it was posted to the FAQ yet. I've updated the "Doesn't
> work on Solaris" paragraph to include the newer patches to SSH 2.1.0
> 
> --
> Gregor Mosheh
> [EMAIL PROTECTED]
> Systems Admin, Humboldt Internet
> 707.825.4638
> 
> 
> ---------- Forwarded message ----------
> Date: Wed, 29 Mar 2000 17:23:25 -0800 (PST)
> From: Gregor Mosheh <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED], [EMAIL PROTECTED], [EMAIL PROTECTED]
> Subject: For the FAQ: Hostbased HOWTO
> 
> 
> Below is a stepwise HOWTO for setting up hostbased authentication for SSH1
> or SSH2 or SSH2 with SSH1 compatibility. I didn't see anything in the FAQ
> that's this straightforward, and I think it will be a welcome addition to
> the FAQ. If you add it in, don't bother crediting me.
> 
> 
> To Set Up RSH-Style Hostbased + Public Key Authentication
> 
> This is known to work with SSH 1.2.27 under Solaris 2.6 and is likely to
> work under any Unix-based SSH1. Where noted below, it should also work
> with SSH 2.0.30 if that SSH 2.0.30 is appropriately patched.
> 
> Hostbased authentication does not work properly with a Solaris 2.6 server
> with libwrap enabled, unless you're using at least SSH 2.1.0 with the
> latest patches.
> 
> 
> Here, I'll use the following terms:
> * The Server is the SSH server into which you're trying to connect.
> * The ServerUser is the username on the Server into which you'd like to
> login.
> * The Client is the machine running a SSH client.
> * The ClientUser is the username on the Client that you'd like to allow to
> login to the Server as the Server User.
> 
> As an example, our backups are done via username "backup" on host
> Tapeserv. On our Authserv server, user "root" is trying to connect to
> Tapeserv to make Authserv's backups on Tapeserv's tape drive. This means
> that the Server is Tapeserv, the ServerUser is backup, the Client is
> Authserv, and the ClientUser is "root".
> 
> 
> Step 1.
> Of course, install SSH on the Server and Client machines.
> 
> 
> Step 2 - SSH1.
> On the Client, cat the file /etc/ssh_host_key.pub and copy-n-paste it into
> Notepad or some other text editor. It will look something like this:
>      1024 35 1255908028087833976430... root@authserv
> (the actual number will be much longer)
> 
> Remove the root@Client from the end and add the Client hostname to the
> beginning:
>      authserv 1024 35 1255908028087833976430...
> 
> Then copy-n-paste this single, very long line into Server's
> /etc/ssh_known_hosts file
> 
> This gives the Server the Client's public key so the Server can verify the
> Client's identity based on a public key signature. By contrast, rsh only
> uses the IP address for authentication.
> 
> 
> Step 2 - SSH2.
> Copy the Client's /etc/ssh2/hostkey.pub file over to the Server and name
> it /etc/ssh2/knownhosts/authserv.ssh-dss.pub
> 
> Of course, since your host isn't named Authserv, use your own hostname.
> Generally, you'll want to use the "short" hostname and not the fully
> qualified hostname.
> 
> This gives the Server the Client's public key so the Server can verify the
> Client's identity based on a public key signature. By contrast, rsh only
> uses the IP address for authentication.
> 
> 
> Step 3.
> On the Server, create a file in the ServerUser's home directory named
> ".shosts". The contents of this file should be the Client hostname, some
> tabs or spaces, and the ClientUser username.
> 
> For example, to allow root@Authserv to log into backup@Tapeserv, I'd place
> this .shosts file into backup's home directory on Tapeserv:
> authserv      root
> 
> Be sure to chown and chmod the .shosts file. The .shosts file must be
> owned by the remote user and should be mode 0400.
> 
> 
> 
> Step 4 - SSH1.
> 
> Make sure that this line exists in /etc/sshd_config:
>      RhostsRSAAuthentication yes
> This enables the SSH1 daemon to do what we need it to do.
> 
> For safety, you may also want to verify this line:
>      RhostsAuthentication no
> This disables the use of rhosts-style authentication without corresponding
> public key authentisation.
> 
> If you had to modify the sshd_config file, you have to HUP the sshd to
> make the change take effect.
> 
> 
> Step 4 - SSH2.
> 
> Check the file /etc/ssh2/sshd2_config and make sure that
> AllowedAuthentications contains the word "hostbased" For example, it may
> read:
>      AllowedAuthentications     hostbased,password
> 
> If you had to modify the sshd2_config file, you'll have to HUP the sshd to
> make the change take effect.
> 
> 
> Step 5.
> 
> You should be all set.
> 
> On the Client, log in as the ClientUser and try this:
>      ssh ServerUser@Server uptime
> You should get back the results of "uptime" run on the remote server.
> 
> The first time you run ssh to that particular server, you'll have to
> answer "yes" when asked if you want to connect to the server. This is
> because the local ssh doesn't yet have the remote server's SSH public key.
> This will only hapen the first time.
> 
> 
> 
> Common Pitfalls
> 
> Did you copy the hostkey properly? Did it get mangled when you copied it
> over?
> 
> With SSH2, did you name the hostkey file appropriately? It should be
> /etc/ssh2/knownhosts/HOSTNAME.ssh-dss.pub and HOSTNAME may need to be the
> short hostname or the long hostname.
> 
> Check your spelling in the .shosts file
> 
> Is the .shosts file owned by the ServerUser?
> 
> Try running the server with the -v flag (for SSH2) or the -d flag (for
> SSH1) and see if anything useful is generated. This is a great way to see
> if a hostkey file is missing.
> 
> 
> About SSH1 and SSH2 Compatibility
> 
> At our site we use SSH2 with password-based authentication for interactive
> sessions. Because hostbased authentication doesn't work with SSH2 on
> Solaris (at the time this was written, SSH 2.1.0 with patches fixed it),
> we installed SSH2 with SSH1 compatibility and we use SSH1 for
> noninteractive hostbased-authenticated backups. It is important to note
> that it is SSH1 and not SSH2 which handles the hostbased sessions, which
> means the following:
> 
> * The Server's SSH2 doesn't need the client's SSH2 hostkey. The Server's
> SSH1 needs the Client's SSH1 hostkey.
> 
> * The Server's SSH2 doesn't need hostbased authentication enabled.
> 
> * There's no need to HUP anything on the Server. The sshd1 is spawned on
> demand and will see the changes to /etc/sshd_config at that time.
> 
> * On the Client, be sure to use "ssh1" to be sure that the right client is
> being invoked, e.g.:
>      ssh1 backup@authserv uptime
> 
> 
> 
> 
> 
> --
> Gregor Mosheh
> [EMAIL PROTECTED]
> Systems Admin, Humboldt Internet
> 707.825.4638
> 
> 
> 
> 
> 
> 
------------------------------------------------------------------------
Anne Carasik, Principal Consultant   | Any two consenting adults can rub
SSH Communications Security, Inc.    | two primes together to create
Email: [EMAIL PROTECTED]                  | a public keypair" - R. Thayer
------------------------------------------------------------------------
Unless stated otherwise above, the opinions expressed herein are my own, 
                            not of my employer.

Reply via email to