关于openssh连接时的尝试

本文详细介绍了在Linux环境下,通过修改/etc/ssh/sshd_config文件中的Banner项来定制SSH客户端链接时的提示信息。同时,分享了升级到最新openssh包并尝试修改sshd.c代码的方法,以及在遇到编译和初始化问题时的解决策略。最后讨论了在不修改源代码的情况下编译openssh并调整启动脚本路径导致的链接提示与登录失败问题,提供了针对性的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要修改telnet shh端口时的提示,如提示如下:SSH-2.0-OpenSSH_4.3

尝试1)修改/etc/ssh/sshd_config的Banner 项,改动后变更的是ssh客户端链接时的提示
尝试2)下载最新openssh包(7.01p),解压,修改sshd.c,找到 xasprintf(&server_version_string, "SSH-%d.%d-%.100s%s%s%s",修改这里的提示,编译openssl,修改init.d的sshd的路径指向编译后的路径,重启sshd,发现无法连接。
尝试3)不修改sshd.c,编译openssh,修改init.d的sshd路径,重启,有链接提示,但用账号密码登录不了。

### iOS OpenSSH 连接解决方案 在处理 iOS 上 OpenSSH连接,可以尝试以下几个方面来解决问题: #### 调整 SSH 配置文件 修改服务器端的 `sshd_config` 文件以优化连接设置。增加以下参数可以帮助减少超的可能性[^1]: ```bash ClientAliveInterval 60 ClientAliveCountMax 3 ``` 这些配置项的作用分别是: - **ClientAliveInterval**: 定义服务器每隔多少秒向客户端发送一次保持活动的消息。 - **ClientAliveCountMax**: 定义在没有收到客户端响应的情况下,服务器最多发送几次消息。 完成更改后,重启 SSH 服务使新配置生效: ```bash sudo systemctl restart sshd ``` #### 修改客户端的 SSH 参数 如果无法访问服务器端配置,则可以在客户端通过命令行指定额外选项来延长会话间。例如,在执行 SSH 命令加入 `-o ServerAliveInterval=60 -o ServerAliveCountMax=3` 参数: ```bash ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 user@hostname ``` 这将在每次间隔 60 秒未检测到数据传输自动发送心跳包给服务器,从而防止因网络闲置而导致断开连接。 #### 使用隧道维持持久化链接 对于频繁遭遇掉线的情况,考虑建立一条永久性的反向代理或者使用 autossh 工具创建自愈型 SSH 隧道[^2]: ```bash autossh -M 0 -N -R 2222:localhost:22 user@remotehost ``` 上述脚本会在远程主机上监听端口 2222 并将其转发回本地机器上的标准 SSH 端口 (默认为 22),即使中间发生短暂中断也会自行恢复连接状态。 #### 检查防火墙与 NAT 设置 有问题可能源于路由器或运营商层面实施的安全策略限制了长间无交互的数据流存活周期。确认相关设备是否启用了 TCP MSS Clamping 功能以及适当放宽 SYN Flood Protection 间窗口大小有助于改善此状况[^3]. 最后提醒一点, 如果以上方法均未能奏效的话, 可能需要联系 ISP 或者更换更稳定的互联网接入方式. ```python import paramiko client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect('hostname', username='user', key_filename='/path/to/key', timeout=30, banner_timeout=30) stdin, stdout, stderr = client.exec_command('ls') print(stdout.read().decode()) client.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值