ssh 复用连接

问题

1.在生产环境下面,如果存在较多的ssh连接,无论是人连接上去的还是代码建立的连接,都会消耗宿主机上面的资源。会造成宿主机的卡顿,IO增大。
2.频繁地建立ssh连接,需要不停地输入密码。

目的

我们需要把大量的连接数降低到一个合理的范围内。

解决方案

  1. 复用连接

这个方案可以第一步解决这种问题,具体的命令:

ssh -o ControlPath=/home/$user/.ssh/$local_path/%L-%h:%p -o ControlMaster=yes -o ControlPersist=yes $user_name@$host_name

上面的命令里面的local_path 可以随便创建,只是方便管理而已
ControlMaster 和 ControlPersist 这两个参数必须加上,如果不加上的话,不会创建unix socket来监听本地ssh连接。

这个的原理我感觉应该是

这个创建的unix socket 当代理,ControlMaster这个进程拥有这个unix socket,之后所有想要复用这个ssh连接,都会跟unix socket连接,然后unix socket 再把信息发到真正的ssh 连接。

  1. 设置MaxStartups
    这个变量是在
/etc/ssh/sshd_config

文件里面,用冒号分割了三个数字,含义如下:

第一个数字:可以同时存在的没有授权的ssh连接数
第二个数字:如果同时存在的没有授权的ssh连接数超过了第一个数字,那么后面没有授权的ssh登录请求有 (第二个数字/100)%的几率拒绝掉。
第三个数字:如果同时存在的没有授权的ssh连接数到达了这个数字,那么后面所有没有授权的ssh登录请求都会被拒绝掉。

遇到的问题

  1. 遇到过unix socket name too long这种错误,这个是ControlPath里面的unix socket 名字太长了,在尽量保证unix socket name 唯一性的前提下,最好尽量缩短unix socket name,限制不太清楚,好像是104-108char
  2. 如果想复用连接,后面的连接必须要指定ControlPath才能使用原来的连接。
  3. MaxStartUps这个变量,man里面说的是没有授权,现在还不太理解没有授权是什么概念。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
虚拟机是一种软件实现的计算机系统,它可以在物理计算机上模拟出多个独立的虚拟计算机。安装和配置SSH(Secure Shell)可以使你通过网络远程连接到虚拟机并进行管理操作。 以下是虚拟机安装和配置SSH的一般步骤: 1. 安装虚拟机软件:首先,你需要选择一款虚拟机软件,例如VirtualBox、VMware等,并将其安装在物理计算机上。 2. 创建虚拟机:使用虚拟机软件创建一个新的虚拟机实例。在创建过程中,你需要指定虚拟机的操作系统类型、硬件配置等。 3. 安装操作系统:启动虚拟机,并按照操作系统的安装步骤进行安装。这通常涉及选择安装源、分配磁盘空间、设置用户名和密码等。 4. 安装SSH服务器:一般来说,大多数Linux发行版都默认安装了OpenSSH服务器。如果你的虚拟机操作系统没有预安装SSH服务器,你可以通过包管理器(如apt、yum等)来安装。例如,在Ubuntu上,你可以使用以下命令安装OpenSSH服务器: ``` sudo apt update sudo apt install openssh-server ``` 5. 配置SSH服务器:一旦安装完成,你可以编辑SSH服务器的配置文件以进行必要的配置更改。在Ubuntu上,SSH服务器的配置文件位于`/etc/ssh/sshd_config`。你可以使用文本编辑器(如vi、nano等)打开该文件,并根据需要进行修改。例如,你可以更改SSH服务器的监听端口、允许的用户、禁用密码登录等。 6. 启动SSH服务:完成配置后,你需要启动SSH服务以使其生效。在Ubuntu上,你可以使用以下命令启动SSH服务: ``` sudo service ssh start ``` 7. 配置网络:确保虚拟机和物理计算机在同一网络中,并且虚拟机的网络设置正确。这样,你才能通过网络连接到虚拟机。 至此,你已经完成了虚拟机的安装和SSH的配置。现在,你可以使用SSH客户端工具(如OpenSSH、PuTTY等)通过指定虚拟机的IP地址和SSH端口来远程连接到虚拟机。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值