OpenSSH目前提供的版本为4.2p1,在安装的过程中切记以下的几点:
1. 该软件安装在/usr/local目录下,其执行文件都在/usr/local/bin下面,但是sshd这个守护进程在/usr/local/sbin/下面,如果要执行sshd的话,必须是使用绝对路径来运行该程序,否则会报错!
2. 安装OpenSSH必须安装Openssl,否则OpenSSH将无法正确的工作。
3. OpenSSH由于使用一些开源的库函数,所以必须安装zlib,libgcc或者直接安装gcc-3.3.2及以后的版本的gcc。
A. 安装gcc-3.3.2
gunzip gcc-3.3.2-sol8-sparc-local.gz
pkgadd -d gcc-3.3.2-sol8-sparc-local
B. 安装OpenSSH软件
gunzip openssh-4.2p1-sol8-sparc-local.gz
pkgadd -d openssh-4.2p1-sol8-sparc-local
C.安装OpenSSL软件
gunzip openssl-0.9.8a-sol8-sparc-local.gz
pkgadd -d openssl-0.9.8a-sol8-sparc-local
设置PATH
BSH: PATH=/usr/local/bin:$PATH;export PATH
4. 生成必要rsal、dsa、rsa等类型的key文件,按以下的命令来做:
#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 ""
在执行上一步的时候有可能会出现下面这个错误:
PRNG is not seeded
解决方法如下:
1、sun的patch 112438-01
其实这个patch安装了有时也没有用 打这个patch的目的是因为8默认没有一个随机数设备
安装这个patch就是为解决这个问题 但从实际使用情况来看,没有什么用 所以建议不要安装。
2、安装一个第3方的软件 ANDIrand-0.7-5.8-sparc-1.pkg
安装了这个软件之后,会在/dev/目录下生成2个随机数设备
random urandom
安装之后不用重起
这时你在起 openssh 就会正常了
这个软件的下载地址
for 2.6
for 8
第二个方法我试过了,确实可以!
生成key文件以后,仍然是无法执行运行sshd,需要建立sshd用户,要注意的是该用户是没有有效的shell的,这是考虑到了系统的安全,按以下的方法建立用户sshd:
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
建立该用户后,就能直接手工启动sshd这个守护进程了,需要使用绝对路径来执行该守护进程,否则会报错。在老版本里面,一个必须要做到步骤就是必须在 /etc/下建立一个ssh的目录,然后将/usr/local/etc下所有配置文件拷贝到/etc/ssh下面,或者做个符号链接,ln -s /usr/local/etc/ssh /etc/ssh。vi sshd_config文件, 将ListenAdress前面的#注释去掉,再在后面添入主机的IP地址,PermitRootLogin前面#号去掉,后面的no改成yes。不是什么原因,新版本已经缺省允许root远程登录了。
做完以上的步骤即可手工启动sshd进程了/usr/local/sbin/sshd。以下是启动和关闭脚本的制定,建立/etc/init.d/sshd脚本,内容如下:
#!/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/rc3.d/S99sshd
# ln -s /etc/init.d/sshd /etc/rc1.d/K99sshd
# /etc/rc3.d/S99sshd start
通过上面这条命令可以手工启动进程
# /etc/rc3.d/S98sshd stop
此条命令将停止sshd守护进程
# ps -e | grep sshd
此条命令可以查看是否启动了sshd
至此完成了ssh的安装。