Installation of OpenSSH
OpenSSH runs as two processes when
connecting to other computers. The first process is a privileged
process and controls the issuance of privileges as necessary. The
second process communicates with the network. Additional
installation steps are necessary to set up the proper environment,
which are performed by issuing the following commands as the
root
user:
install -v -m700 -d /var/lib/sshd &&
chown -v root:sys /var/lib/sshd &&
groupadd -g 50 sshd &&
useradd -c 'sshd PrivSep' -d /var/lib/sshd -g sshd \
-s /bin/false -u 50 sshd
OpenSSH is very sensitive to
changes in the linked OpenSSL
libraries. If you recompile OpenSSL, OpenSSH may fail to startup. An alternative is
to link against the static OpenSSL
library. To link against the static library, execute the following
command:
sed -i 's@-lcrypto@/usr/lib/libcrypto.a -ldl@' configure
Install OpenSSH by running the
following commands:
sed -i 's@ -ldes@@' configure &&
./configure --prefix=/usr --sysconfdir=/etc/ssh --datadir=/usr/share/sshd \
--libexecdir=/usr/lib/openssh --with-md5-passwords \
--with-privsep-path=/var/lib/sshd \
--with-xauth=/usr/bin/xauth &&
make
If you linked tcp_wrappers into
the build using the --with-tcp-wrappers
parameter, ensure you add 127.0.0.1 to the sshd line in
/etc/hosts.allow
if you have a
restrictive /etc/hosts.deny
file, or
the test suite will fail. Additionally, the testsuite requires an
installed copy of scp
to complete the mulitplexing tests. To run the test suite, issue
the following commnds as the root
user:
if test -f /usr/bin/scp
then
mv /usr/bin/scp /usr/bin/scp-bak
fi &&
cp scp /usr/bin/scp &&
make tests 2>&1 | tee check.log
grep "FATAL" check.log
If the above command produces no 'FATAL' errors, then proceed with
the installation, again as the root
user:
rm /usr/bin/scp &&
if test -f /usr/bin/scp-bak
then
rm /usr/bin/scp-bak
fi &&
make install &&
install -v -m755 -d /usr/share/doc/openssh-4.7p1 &&
install -v -m644 INSTALL LICENCE OVERVIEW README* WARNING.RNG \
/usr/share/doc/openssh-4.7p1
Command Explanations
sed -i 's@ -ldes@@'
configure: This command fixes a build crash if you
used the --with-kerberos5
parameter and
you built the Heimdal package in
accordance with the BLFS instructions. The command is harmless in
all other instances.
--sysconfdir=/etc/ssh
: This
prevents the configuration files from being installed in
/usr/etc
.
--datadir=/usr/share/sshd
:
This switch puts the Ssh.bin file (used for SmartCard
authentication) in /usr/share/sshd
.
--with-md5-passwords
: This
is required with the default configuration of Shadow password suite
in LFS.
--libexecdir=/usr/lib/openssh
: This
parameter changes the installation path of some programs to
/usr/lib/openssh
instead of
/usr/libexec
.
--with-pam
: This parameter
enables Linux-PAM support in the
build.
--with-xauth=/usr/bin/xauth
: Set the
default location for the xauth binary for X
authentication. Change the location if xauth will be installed to a
different path. This can also be controlled from sshd_config
with the XAuthLocation keyword. You
can omit this switch if Xorg is
already installed.
Configuring OpenSSH
Config Files
~/.ssh/*
, /etc/ssh/ssh_config
, and /etc/ssh/sshd_config
There are no required changes to any of these files. However, you
may wish to view the /etc/ssh/
files and make any changes appropriate for the security of your
system. One recommended change is that you disable root
login via ssh. Execute the following
command as the root
user to
disable root
login via
ssh:
echo "PermitRootLogin no" >> /etc/ssh/sshd_config
If you added LinuxPAM support,
then you will need to add a configuration file for sshd. Issue the following commands as the
root
user:
sed 's@d/login@d/sshd@g' /etc/pam.d/login > /etc/pam.d/sshd &&
chmod 644 /etc/pam.d/sshd
Additional configuration information can be found in the man
pages for sshd,
ssh and
ssh-agent.
Boot Script
To start the SSH server at system boot, install the /etc/rc.d/init.d/sshd
init script included in
the blfs-bootscripts-20080816 package.
make install-sshd