扫一扫
关注微信公众号

在Solaris8上安装SSH
2009-01-03   

安装步骤
初始步:得到Solaris 8的random补丁
到112438-01.zip得到补丁,解压补丁包后,根
据补丁目录下的README文件指示安装补丁,要使补丁起效必须重启系统(boot -r)。

第一步:获得安装包
从这你可获得安装包,对于SPARC系统
openssh-3.5p1-sol8-sparc-local.gz
openssl-0.9.6g-sol8-sparc-local.gz
tcp_wrappers-7.6-sol8-sparc-local.gz (可选,但推荐安装) 
zlib-1.1.4-sol8-sparc-local.gz
libgcc-3.2-sol8-sparc-local.gz
perl-5.6.1-sol8-sparc-local.gz (可选)
prngd-0.9.25-sol8-sparc-local.gz (可选)
egd-0.8-sol8-sparc-local.gz (可选)
对于Intel系统:
openssh-3.5p1-sol8-intel-local.gz
openssl-0.9.6g-sol8-intel-local.gz
tcp_wrappers-7.6-sol8-intel-local.gz (可选,但推荐安装) 
zlib-1.1.4-sol8-intel-local.gz
libgcc-3.2-sol8-intel-local.gz
perl-5.6.1-sol8-intel-local.gz (可选)
prngd-0.9.25-sol8-intel-local.gz (可选)
egd-0.8-sol8-intel-local.gz (可选) 
假如你已经安装了其中一些包的话,可以跳过下载,但是很多包都是最新的。

第二步:安装软件包
文件下载完之后,进入下载目录并运行如下命令(此以sparc系统为例,如是Intel系统,换为
Intel文件即可):
# gunzip openssh-3.5p1-sol8-sparc-local.gz
# gunzip openssl-0.9.6g-sol8-sparc-local.gz
# gunzip zlib-1.1.4-sol8-sparc-local.gz
# gunzip libgcc-3.2-sol8-sparc-local.gz  (假如你还未安装gcc 3.2)
# gunzip tcp_wrappers-7.6-sol8-sparc-local.gz (可选)

其他可选包也可同样操作,然后用root权限运行如下命令

# pkgadd -d openssh-3.5p1-sol8-sparc-local
# pkgadd -d openssl-0.9.6g-sol8-sparc-local
# pkgadd -d zlib-1.1.4-sol8-sparc-local
# pkgadd -d libgcc-3.2-sol8-sparc-local (假如你还未安装gcc 3.2)
# pkgadd -d tcp_wrappers-7.6-sol8-sparc-local (可选)
一旦你已经安装了以上包后,在目录/usr/local下你将得到很多子目录。ssl文件的默认路径是
/usr/local/ssl。当这些文件被编译为不将目录(/usr/local/lib和/usr/local/ssl/lib)加入
LD_LIBRARY_PATH,那可能将需要设置它们。现在你将可以在目录/usr/local/bin中找到ssh在目
录/usr/local/sbin中找到sshd。确定你将目录/usr/local/bin和目录/usr/local/sbin加到了你
的PATH环境变量中。在可选的egd包中的perl脚本程序(.pl后缀)将要在目录/usr/local/bin中
寻找perl。假如你使用的是Sun Perl,那么Perl脚本程序开头改为/usr/bin,然而使用安装包的
为/usr/local/bin

第三步:建立sshd用户和/var/empty目录
openssh 3.5p1中采用了一种新的安全方式被称为特权分隔。具体内容你可以查看在openssh的源
文件目录中的README.privsep文件。现在这种方式在openssh中为默认设置。在进行之前你应该
阅读一下README.privsep文件,然后在用root权限执行这些步骤:
# mkdir /var/empty
# chown root:sys /var/empty
# chmod 755 /var/empty
# groupadd sshd
# useradd -g sshd -c 'sshd privsep' -d /var/empty -s /bin/false sshd

/var/empty 不应该包含任何文件.
假如你没有做这一步并试图启动sshd的话,你将得到error信息并且守护进程不会运行。

第四步:安装tcp_wrappers
tcp_wrappers是被用来限制某些有限组机器访问你的通信端口,例如sshd程序使用的22端口。假
如你已经运行了tcp_wrappers,那么你只要确定sshd守护进程条目是否在/etc/hosts.allow和
/etc/hosts.deny文件中。假如你当前没有运行tcp_wrappers,你首先应该创建文件
/etc/hosts.deny并在文件中加入一行
sshd:ALL
然后,创建文件/etc/hosts.allow并加入一行,例如
sshd:...
"..."处填写你允许与你的机器通信的IP列表,例如
sshd:202.112.117.
此例说明允许202.112.117.子网的机器访问你的机器。

第五步:安装ssh和sshd
这是最后一步。每一台你想通过ssh客户端进行通信的机器都需要运行一个sshd守护进程。但是
首先,你需要在服务器机器上运行下面的命令来创建秘钥信息。再次确定目录/usr/local/bin和
/usr/local/sbin是否在你的PATH中。假如你以前曾经运行过sshd并且在/usr/local/etc下有秘
钥,那么运行下面这些命令将会覆盖它们。用root权限,输入:
# ssh-keygen -t rsa1 -f /usr/local/etc/ssh_host_key -N ""
# ssh-keygen -t dsa -f /usr/local/etc/ssh_host_dsa_key -N ""
# ssh-keygen -t rsa -f /usr/local/etc/ssh_host_rsa_key -N ""
每一条命令可能要花费几分钟的事件,这取决于你机器的速度。等到每条命令结束为止。

完成之后,我们可以创建脚本来启动sshd守护进程。下面编辑一个简单的启动脚本,并把它放置
在/etc/init.d目录下(root权限):

#!/bin/sh

pid=`/usr/bin/ps -e | /usr/bin/grep sshd | /usr/bin/sed -e 's/^  *//' -e 's/ .*//'`
case $1 in
'start')
        /usr/local/sbin/sshd
        ;;
'stop')
        if [ "${pid}" !="" ]
        then
                /usr/bin/kill ${pid}
        fi
        ;;
*)
        echo "usage: /etc/init.d/sshd {start|stop}"
        ;;
esac

然后运行如下命令:
# chown root /etc/init.d/sshd
# chgrp sys /etc/init.d/sshd
# chmod 555 /etc/init.d/sshd
# ln -s /etc/init.d/sshd /etc/rc2.d/S98sshd 

# /etc/rc2.d/S98sshd start 
通过上面这条命令可以手工启动进程
# /etc/rc2.d/S98sshd stop 
此条命令将停止sshd守护进程
# ps -e | grep sshd 
此条命令可以查看是否启动了sshd

至此完成了ssh的安装。

热词搜索:

上一篇:SSH权威指南(1)
下一篇:如何禁掉扫描机器的 IP(通过 ssh 认证记录分析)

分享到: 收藏