安裝步驟
第一步:獲得安裝包 去SUN的自由軟件網站ftp://ftp.sunfreeware.com/pub/freeware/sparc/10下載SSH軟件包 從該網站可以獲得軟件安裝包,對於SPARC系統 openssh-4.3p1-sol10-sparc-local.gz openssh-4.3p2-sol10-sparc-local.gz openssl-0.9.8a-sol10-sparc-local.gz tcp_wrappers-7.6-sol10-sparc-local.gz(可選,但推薦安裝) zlib-1.2.3-sol10-sparc-local.gz libgcc-3.3-sol10-sparc-local.gz perl-5.6.1-sol8-sparc-local.gz (可選) prngd-0.9.25-sol10-sparc-local.gz(可選) egd-0.8-sol8-sparc-local.gz (可選) 假如你已經安裝了其中一些軟件包的話,可以跳過下載,但是建議下載最新軟件包。 第二步:安裝軟件包 文件下載完之後,進入下載目錄並運行如下命令(此以sparc系統為例,如是Intel系統,換為Intel文件即可): # gunzip openssh-4.3p1-sol10-sparc-local.gz # gunzip openssh-4.3p2-sol10-sparc-local.gz # gunzip openssl-0.9.8a-sol10-sparc-local.gz # gunzip zlib-1.2.3-sol10-sparc-local.gz # gunzip libgcc-3.3-sol10-sparc-local.gz (假如你還未安裝gcc 3.3) # gunzip tcp_wrappers-7.6-sol10-sparc-local.gz (可選) 其他可選包也可同樣操作,然後用root權限運行如下命令 # pkgadd -d openssh-4.3p1-sol10-sparc-local # pkgadd -d openssh-4.3p2-sol10-sparc-local # pkgadd -d openssl-0.9.8a-sol10-sparc-local # pkgadd -d zlib-1.2.3-sol10-sparc-local # pkgadd -d libgcc-3.3-sol10-sparc-local (假如你還未安裝gcc 3.3) # pkgadd -d tcp_wrappers-7.6-sol10-sparc-local (可選) 安裝過程中對於所有的交互提示信息均輸入y。 一旦你已經安裝了以上包後,在目錄/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 4.3p1中采用了一種新的安全方式被稱為特權分隔。具體內容你可以查看在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:10.71.62. 此例說明允許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 "" 每一條命令可能要花費幾分鐘的事件,這取決於你機器的速度。等到每條命令結束為止。 完成之後,在遠端主機上也執行上述命令創建公共密鑰和私有密鑰。如果使遠端的服務器訪問本主機,就需要把本主機的公共密鑰ftp到遠端中。例如: 把本主機的公共密鑰ftp到遠端主機的目錄“/usr/local/etc”中 /usr/local/etc/ssh_host_key.pub /usr/local/etc/ssh_host_dsa_key.pub /usr/local/etc/ssh_host_rsa_key.pub 我們創建腳本來啟動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 root@N2000Secondary 然後輸入密碼即可 或者使用IP地址方式訪問 # ssh [email protected] 使用主機名稱時,需要在/etc/hosts裡面配置雙方服務器的IP地址和主機名稱的對應關系。 如何實現不輸入密碼訪問遠端主機? 如下的local指當前主機,remote指要訪問的遠端主機 首先在local服務器傷執行下面命令 local>; ssh-keygen -t dsa -f .ssh/id_dsa local>; cd .ssh local>; scp id_dsa.pub user@remote:/.ssh/id_dsa.pub local>; ssh user@remote remote>; cd .ssh remote>; cat id_dsa.pub >;>; authorized_keys2 remote>; chmod 640 authorized_keys2 remote>; rm id_dsa.pub remote>; exit 修改文件/usr/local/etc/sshd_config,把其中“PasswordAuthentication yes”所在行的注釋去掉,然後再把後面的yes修改為no,修改後重新啟動一下sshd進程。 然後可以直接訪問另外一個服務器,操作如下: # PasswordAuthentication, PermitEmptyPasswords, and root@N2000Primary # ssh N2000Secondary iostat -E|grep Size Size: 73.40GB <73400057856 bytes> Size: 73.40GB <73400057856 bytes> Size: 73.40GB <73400057856 bytes> Size: 0.49GB <486584320 bytes> Size: 73.40GB <73400057856 bytes> root@N2000Primary # iostat -E|grep Size Size: 73.40GB <73400057856 bytes> Size: 73.40GB <73400057856 bytes> Size: 73.40GB <73400057856 bytes> Size: 0.00GB <0 bytes> Size: 73.40GB <73400057856 bytes>