centos6通过yum安装的openssh默认为5.3p1,已经非常落后了,且很多漏洞,只能通过升级sshd来修复。
第零部分 安装telnet(略)以免卸载ssh之后无法连接服务器
第一部分 备份和卸载老版本的openssh(如果有的话)
通过find / -name "ssh"和find / -name "sshd"找到openssh的配置文件,一般是在/etc/ssh目录,所以将整个目录备份
cp -r /etc/ssh /etc/ssh.old
通过rpm -qa |grep openssh命令查找本机安装的openssh服务,一般结果有三行openssh,openssh-server,openssh-clients
然后通过rpm卸载
rpm -e --nodeps openssh
rpm -e --nodeps openssh-server
rpm -e --nodeps openssh-clients
此时通过rpm -qa |grep openssh和find / -name "ssh"等命令查找ssh,会发现已经卸载干净了
第二部分 下载编译安装新版openssh
首先通过yum安装依赖和必要工具
yum install wget gcc openssl-devel pam-devel rpm-build tcp_wrappers-devel -y
然后在openssh官网 上找到所需下载的openssh版本,比如openssh-8.3p1.tar.gz
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.3p1.tar.gz
然后解压
tar zxvf openssh-8.3p1.tar.gz
编译安装
cd openssh-8.3p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers
--perfix为安装目录
--sysconfdir为配置文件所在位置
然后
make && make install
此时查看openssh版本号,可以发现已经更新为最新的8.3
ssh -V
第三部分 配置并启动openssh
编辑/etc/ssh/sshd_config配置文件,注意同目录的下ssh_config为客户端配置文件,我们要编辑的是服务端sshd_config文件,不要搞错了
vi /etc/ssh/sshd_config
在配置文件之中加上
PermitRootLogin yes
PasswordAuthentication yes
使得root用户可以使用密码通过ssh连接服务器
加入
Port 22
指定使用22端口
通过find命令找到sshd.init的位置,将其复制到init.d目录下
cp -p /tmp/openssh-8.3p1/contrib/redhat/sshd.init /etc/init.d/sshd
设置执行权限加入服务之中
chmod +x /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
chkconfig --list sshd
然后就可以通过service命令来启动、停止和查看新安装的sshd服务了
启动sshd服务
service sshd start
此时即可通过secureCRT等软件在客户端连接服务器
如果还不行,检查iptables的规则是否开放22端口
来源:oschina
链接:https://my.oschina.net/u/150705/blog/4317155