记录一次SSH无法连接的情况

情况:

使用VS Code中的Remote实现远程开发,代码位于服务器,服务器部署于WIndows Server 2019 使用OPEN SSH。

问题:

SSH曾经是可以连接成功,但是本次连接过程总是超时。报错细节如下:
在这里插入图片描述

解决方法:

  • 换一个网络试一下,本次使用校园网连接,经过测试发现,校园网禁止了22号端口,在其他网络环境下22号端口是可以通过的
    下图是校园网下的测试结果:
    在这里插入图片描述
    其他网络的测试结果:

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
移动SSH项目是一个基于Struts、Spring、Hibernate和Oracle技术栈的企业级Java Web应用,它为企业提供了一套完整的移动端SSH(Secure Shell)解决方案。项目具有高度可定制性,可以根据客户需求进行二次开发和定制。以下是项目的主要功能介绍: 1. **用户认证与授权**:项目采用了基于角色的访问控制(RBAC)模型,支持用户注册、登录、找回密码等功能,同时提供了灵活的权限管理,满足企业对用户权限的细粒度控制需求。 2. **移动端SSH管理**:项目提供了一套完整的移动端SSH管理功能,包括SSH密钥生成、上传、下载、管理等。用户可以通过Web界面轻松管理SSH密钥,确保数据传输的安全性。 3. **远程服务器管理**:项目支持对远程服务器的管理,包括服务器的添加、编辑、删除、连接等功能。用户可以通过Web界面轻松管理远程服务器,实现远程服务器的集中管理。 4. **远程桌面访问**:项目支持通过Web界面访问远程桌面,用户可以在任何地方、任何设备上访问远程桌面,提高工作效率。 5. **日志审计与监控**:项目提供了完整的日志审计与监控功能,记录了用户的操作日志、登录日志等,帮助企业了解系统使用情况,确保系统安全。 6. **报表统计与分析**:项目提供了报表统计与分析功能,用户可以通过Web界面查看系统运行报表、统计数据等,帮助企业了解系统运行情况,为决策提供支持。 7. **系统设置与维护**:项目提供了系统设置与维护功能,包括系统参数设置、数据备份与恢复、系统日志查看等。用户可以通过Web界面轻松进行系统设置与维护,确保系统稳定运行。 综上所述,移动SSH项目是一个功能丰富、高度可定制的企业级Java Web应用,可以满足企业对移动端SSH解决方案的需求。通过二次开发和定制,用户可以根据自身需求实现个性化的功能和界面设计。
### 回答1: 以下是一个实现这个功能的简单的shell脚本: ```bash #!/bin/bash # 获取最后一次SSH连接的源IP地址 last_ip=$(grep "Accepted publickey for" /var/log/auth.log | tail -1 | awk '{print $11}') # 把IP地址添加到防火墙白名单 iptables -A INPUT -p tcp -s $last_ip --dport 22 -j ACCEPT ``` 这个脚本首先在`/var/log/auth.log`文件中查找最后一次SSH连接记录,然后使用`tail`命令获取最后一行,使用`awk`命令提取源IP地址。最后,使用`iptables`命令将该IP地址添加到防火墙白名单中,允许其访问SSH服务。 需要注意的是,这个脚本需要以root用户权限运行,否则无法修改防火墙规则。 ### 回答2: 编写一个shell脚本以获取最后一次ssh连接的源IP,并将此IP添加到防火墙白名单中,可按照以下步骤进行: 1. 创建一个名为"add_to_firewall.sh"的脚本文件,并使用文本编辑器打开它。 2. 在文件的开头添加以下shebang,以指定脚本使用的shell类型: ```bash #!/bin/bash ``` 3. 使用以下命令获取最后一次ssh连接的源IP: ```bash last_login=$(grep "Accepted password for" /var/log/auth.log | tail -n 1 | awk '{print $11}' | cut -d '=' -f 2) ``` 解释: - 使用grep命令搜索包含"Accepted password for"字符串的/var/log/auth.log文件中的行。 - 使用tail命令获取最后一行(即最后一次ssh连接)。 - 使用awk命令提取第11个字段(即源IP地址)。 - 使用cut命令按照'='分隔符获取第2个字段(即IP地址)。 4. 使用以下命令将获取到的IP添加到防火墙白名单中(假设使用iptables作为防火墙): ```bash iptables -A INPUT -s $last_login -j ACCEPT ``` 解释: - 使用iptables命令将获取到的IP地址作为源地址添加到INPUT链中,并允许该IP通过防火墙。 5. 保存并关闭文件。 6. 运行以下命令赋予脚本文件执行权限: ```bash chmod +x add_to_firewall.sh ``` 7. 然后,运行脚本文件以执行脚本: ```bash ./add_to_firewall.sh ``` 脚本将获取最后一次ssh连接的源IP,并将其添加到防火墙白名单中。 请注意,这只是一个简单的示例脚本,具体实现可能因操作系统、防火墙软件等环境而有所不同。 ### 回答3: 编写一个shell脚本来获取最后一次SSH连接的源IP,并将这个IP添加到防火墙的白名单。以下是一个可能的解决方案: ```bash #!/bin/bash # 获取最后一次SSH连接的源IP last_ip=$(grep "Accepted publickey for" /var/log/auth.log | tail -n 1 | awk '{print $NF}') # 添加IP到防火墙白名单 iptables -A INPUT -p tcp --dport 22 -s $last_ip -j ACCEPT # 保存防火墙配置 iptables-save > /etc/iptables/rules.v4 ``` 这个脚本假设日志文件位于 `/var/log/auth.log`,且SSH连接记录行包含 "Accepted publickey for"。根据实际情况,你可能需要相应地更改这些内容。 脚本首先使用 `grep` 命令查找日志文件中包含 "Accepted publickey for" 的行,然后使用 `tail -n 1` 获取最后一行,最后使用 `awk '{print $NF}'` 提取IP地址。这样就可以得到最后一次SSH连接的源IP。 然后,脚本使用 `iptables` 命令将获取到的IP地址添加到防火墙的INPUT链中的SSH端口的ACCEPT规则中。最后,使用 `iptables-save` 命令将防火墙配置保存到 `/etc/iptables/rules.v4` 文件中,以便在系统重启后仍然有效。 请注意,该脚本需要具有足够的权限才能执行iptables和读取日志文件。在运行脚本之前,你需要确保以root权限运行或具有与此相当的权限。 希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值