项目场景:
又是升级,项目交付时需要使用第三方安全软件检测当前服务和服务器是否存在漏洞。结果刚升级完tomcat和nginx。又出来一个openssh漏洞。果断升级版本
问题描述:
linux xshell 能登陆上但xftp连不上 提示无法“127.0.0.1”建立连接
具体升级openssh操作网上一堆教程,但是坑比较多。大家升级前需要研究下openssh各种组件依赖等等,才能在升级的时候临危不乱。
简单说下吧(具体看百度)
1.安装telnet,一定要开启telnet服务。很重要
查看是否安装telnet服务
rpm -qa | grep telnet
rpm -qa | grep xinetd
若无安装,yum安装
yum -y install telnet*
yum -y install xinetd
开启服务
systemctl start telnet.socket
systemctl start xinetd
vi /etc/securetty
在最后添加两行
pts/0
pts/1
systemctl restart xinetd
netstat -plnt |grep 23 # 确认下是否启动成功
安装编译需要的组件 比如gcc glib,pam zlib等,再到openssh官网找最新的openssh和openssl
yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel
yum install -y pam* zlib*
不过多阐述,自行百度。贴两个链接供参考
1.https://editor.csdn.net/md?not_checkout=1&articleId=112845719
2.https://www.cnblogs.com/nmap/p/10779658.html
原因分析:
xshell 能登陆上但xftp连不上 提示无法“127.0.0.1”建立连接后来排查了一下,应该是升级后sftp的路径匹配失败,会导致连接不上
cat /etc/ssh/sshd_config
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
PermitRootLogin yes
X11Forwarding yes
Subsystem sftp /usr/libexec/openssh/sftp-server是升级之后的路径映射。查看下当前服务的sftp-server路径
[root@host-173-84-57-5 /]# find / -name sftp-server
find: ‘/run/user/42/gvfs’: Permission denied
find: ‘/run/user/1000/gvfs’: Permission denied
/root/software/openssh-8.4p1/sftp-server
/usr/local/openssh/libexec/sftp-server
将sftp服务的路径和openssh中的路径保持一致即可
vi /etc/ssh/sshd_config
重启服务之前,要多开几个窗口,以防失败连接不上服务器
systemctl restart sshd
解决方案:
线上环境升级胆战心惊,升级前多学习相关知识,多看看前辈们遇到的坑和原因分析。会很大程度上提高升级的准确性。