Linux服务器中OpenSSH的源码编译与升级 |
发布时间: 2012/8/13 10:23:33 |
一。AS4升级步骤
1.建议使用源码安装方式,下载安装包 cd/root wget-c"ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-5.0p1.tar.gz" tarzxvfopenssh-5.0p1.tar.gz cdopenssh-5.0p1 2.升级请确认Zlib和OpenSSL的版本: openssh-5.0p1要求Zlib的版本在1.2.1.2以上,OpenSSL版本在0.9.6以上。下面是Zlib和OpenSSL的官方地址: http://www.gzip.org/zlib/ http://www.openssl.org/ 注意:OpenSSL0.9.5a属于可接受的版本,但是在使用SSHprotocol1时,一些加密功能可能会出现问题(出于安全考虑,建议使用SSHprotocol2)。详见INSTALL文档。 3.编译常用的参数——prefix=和——sysconfdir=,省略以上参数,默认的ssh将安装在/usr/local/bin下,sshd装在/usr/local/sbin,sftp-server装在/usr/local/libexec/sftp-server,配置文件在/usr/locale/etc下。 。/configure——sysconfdir=/etc/ssh make makeinstall 4.对比安装默认和当前配置文件,个别重要参数请务必修改 diffsshd_config/etc/ssh.bak/sshd_config 5.配置文件推荐设置 确认/usr/local/libexec/sftp-server路径是否正确 6.检查配置文件的正确性 grep-v^#/etc/ssh/sshd_config|awk'{print$1}'|sort|uniq-d 是否有重复的行 /usr/local/sbin/sshd-t 参数是否正确 7.添加/etc/init.d脚本和service服务 先备份原来的脚本cp/etc/init.d/sshd/etc/init.d/sshd.bak 主要是修改ssh-keygen和sshd的路径。PID文件也作相应修改,避免跟之前的sshd有冲突,这样就能够在保证原有sshd不受影响的情况下配置新的sshd服务。修改下面三项: 原来: KEYGEN=/usr/bin/ssh-keygen SSHD=/usr/sbin/sshd PID_FILE=/var/run/sshd.pid 改成: KEYGEN=/usr/local/bin/ssh-keygen SSHD=/usr/local/sbin/sshd PID_FILE=/var/run/sshd2.pid 添加service服务: /sbin/chkconfig——addsshd 8.重起sshd服务 注意:启动新的sshd服务前,先临时修改sshd_config里的端口,避免跟原有ssh端口冲突。 /sbin/servicesshdstart >/root/.ssh/known_hosts 用ssh登陆测试,如果能正常登录就可以换回管理员使用的ssh端口(切换之前还是必须把旧版ssh占用的端口换掉)。 注意:远程对ssh所做的任何重大修改,必须确保有另外的方式可以登录服务器。 完成所有工作后,把原有的sshd服务关闭。 /etc/init.d/sshd.bakstop ssh升级完成,新版的/usr/local/sbin/sshd将代替旧版的/usr/sbin/sshd 如果不能登陆,请检查。 1.启动telnet服务 vi/etc/inetd.conf telnetstreamtcpnowaitroot/usr/libexec/telnetdtelnetd 检查/etc/rc.conf中是否inetd_enable="YES,/etc/rc.d/inetdrestart,启动inetd 用telnet登陆服务器,进行下面操作 2.升级openssh cd/root/ wget-cftp://ftp.openbsd.org/pub/OpenBS……penssh-5.0p1.tar.gz tarzxvfopenssh-5.0p1.tar.gz cdopenssh-5.0p1 。/configure——prefix=/usr——sysconfdir=/etc/ssh——libexecdir=/usr/libexec/openssh——without-zlib-version-check make makeinstall 对比安装默认和当前配置文件,个别重要参数请务必修改 diffsshd_config/etc/ssh/sshd_config 检查配置文件的正确性 grep-v^#/etc/ssh/sshd_config|awk'{print$1}'|sort|uniq-d 是否有重复的行 /usr/sbin/sshd-t 参数是否正确 重起sshd kill-HUP`cat/var/run/sshd.pid` 用ssh登陆检查openssh服务是否安装,启动正常 关闭telnet服务,退出telnet killallinetd 确认telnet服务关闭 3.关于openssl的升级: 最新的openssl包,http://www.openssl.org/source/openssl-0.9.8g.tar.gz 可采用源码安装的形式, 。/config——prefix=/usr/local/openssl-0.9.8 make makeinstall 然后升级SSH,将——with-ssl-dir指向openssl的安装目录。 三。FAQ 启动sshd服务的时候提示错误UnsupportedoptionUsePAM? 答:默认的configure没有启用——with-pam选项,如果在sshd_config配置文件里加入 UsePAMno就会导致上面的错误提示。UsePAM与ssh密码认证相关,但公司服务器禁止通过密码认证方式登录。所以编译的时候不建议使用——with-pam选项,配置文件里不使用UsePAMno,而改为使用 PasswordAuthenticationnoChallengeResponseAuthenticationno的方式来禁止密码登录。 本文出自:亿恩科技【www.enkj.com】 |