Solaris安裝
安裝步驟
初始步:得到Solaris 8的random補丁
PRNG is not seeded這個問題所困擾 下面是我的解決辦法
首先要保證openssh所要求的包你都安裝了
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
http://www.cosy.sbg.ac.at/~andi/SUNrand/pkg/ANDIrand-0.7-5.6-sparc-1.pkg
for 8
http://www.cosy.sbg.ac.at/~andi/SUNrand/pkg/ANDIrand-0.7-5.8-sparc-1.pkg
第一步:獲得安裝包
從這你可獲得安裝包,對於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的安裝。