Solaris 10安装和配置SSH

(编辑:jimmy 日期: 2024/12/25 浏览:2)

安装步骤

第一步:获得安装包 去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 root@10.71.62.115 使用主机名称时,需要在/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>