Linux服务器中OpenSSH的源码编译与升级
2008-04-21 12:01:12 来源:WEB开发网一.AS4 升级步骤
1.建议使用源码安装方式,下载安装包
cd /root
wget -c "ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-5.0p1.tar.gz"
tar zxvf openssh-5.0p1.tar.gz
cd openssh-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/
注意: OpenSSL 0.9.5a属于可接受的版本,但是在使用SSH PRotocol 1 时,一些加密功能可能会出现问题(出于安全考虑,建议使用SSH protocol 2)。详见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
make install
4.对比安装默认和当前配置文件,个别重要参数请务必修改
diff sshd_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 --add sshd
8.重起sshd服务
注意:启动新的sshd服务前,先临时修改sshd_config里的端口,避免跟原有ssh端口冲突。
/sbin/service sshd start
>/root/.ssh/known_hosts
用ssh登陆测试,如果能正常登录就可以换回管理员使用的ssh端口(切换之前还是必须把旧版ssh占用的端口换掉)。
注意:远程对ssh所做的任何重大修改,必须确保有另外的方式可以登录服务器。
完成所有工作后,把原有的sshd服务关闭。
/etc/init.d/sshd.bak stop
ssh升级完成,新版的/usr/local/sbin/sshd将代替旧版的/usr/sbin/sshd
如果不能登陆,请检查。
二.openSSH升级步骤:
1.启动telnet服务
vi /etc/inetd.conf
telnet stream tcp nowait root /usr/libexec/telnetd telnetd
检查/etc/rc.conf中是否inetd_enable="YES,/etc/rc.d/inetd restart,启动inetd
用telnet登陆服务器,进行下面操作
2.升级openssh
cd /root/
wget -c ftp://ftp.openbsd.org/pub/OpenBS ... penssh-5.0p1.tar.gz
tar zxvf openssh-5.0p1.tar.gz
cd openssh-5.0p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --libexecdir=/usr/libexec/openssh --without-zlib-version-check
make
make install
对比安装默认和当前配置文件,个别重要参数请务必修改
diff sshd_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
killall inetd
确认telnet服务关闭
3.关于openssl的升级:
最新的openssl包,http://www.openssl.org/source/openssl-0.9.8g.tar.gz
可采用源码安装的形式,
./config --prefix=/usr/local/openssl-0.9.8
make
make install
然后升级SSH,将 --with-ssl-dir指向openssl的安装目录。
三.FAQ
启动sshd 服务的时候提示错误Unsupported option UsePAM?
答:默认的configure没有启用--with-pam选项,如果在sshd_config配置文件里加入
UsePAM no 就会导致上面的错误提示。UsePAM与ssh密码认证相关,但公司服务器禁止通过密码认证方式登录。所以编译的时候不建议使用--with-pam选项,配置文件里不使用UsePAM no,而改为使用
PassWordAuthentication no ChallengeResponseAuthentication no的方式来禁止密码登录。
- ››linux下两台服务器文件实时同步方案设计和实现
- ››Linux文件描述符中的close on exec标志位
- ››Linux下管道使用的一些限制
- ››Linux 误删/usr/bin 解决方法
- ››linux 添加新用户并赋予sudo执行权限
- ››linux常用软件安装方法
- ››Linux的分区已经被你从Windows中删除,系统启动后...
- ››linux enable命令大全
- ››Linux实现基于Loopback的NVI(NAT Virtual Interfa...
- ››Linux远程访问windows时,出现"连接被对端重...
- ››linux中使用head命令和tail命令查看文件中的指定行...
- ››linux swap 分区调控(swap分区 lvm管理)
更多精彩
赞助商链接