科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道Linux服务器中OpenSSH的源码编译与升级

Linux服务器中OpenSSH的源码编译与升级

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

UsePAM no 就会导致上面的错误提示。UsePAM与ssh密码认证相关,但公司服务器禁止通过密码认证方式登录。所以编译的时候不建议使用——with-pam选项。

作者:佚名 来源:巧巧读书 2008年6月12日

关键字: Linux ssh OpenSSH

  • 评论
  • 分享微博
  • 分享邮件

  一。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的方式来禁止密码登录。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章