富贵论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

广告
查看: 9|回复: 0

[教程] Linux下SSH Session复制功能实现方法

[复制链接]

1万

主题

1万

帖子

5万

积分

会员

UID
13851
金币
0
威望
0
贡献
18840
宣传
0
买家
0
卖家
0
注册时间
2017-11-30
最后登录
2024-4-27

活力无限勋章灌水天才勋章超强在线勋章签到达人勋章

发表于 2024-4-15 20:15 | 显示全部楼层 |阅读模式

特别感谢阿干同学的邮件分享。

详细方法

复制代码

代码如下:

Linux/mac下,在$HOME/.ssh/config中加入

Host *

ControlMaster auto

ControlPath /tmp/ssh-%r@%h

至此只要第一次SSH登录输入密码,之后同个Hosts则免登。

配置文件分析

man ssh_config 5

复制代码

代码如下:

ControlPath

Specify the path to the control socket used for connection sharing as described in the ControlMaster section

above or the string “none” to disable connection sharing. In the path, ‘%l’ will be substituted by the

local host name, ‘%h’ will be substituted by the target host name, ‘%p’ the port, and ‘%r’ by the remote

login username. It is recommended that any ControlPath used for opportunistic connection sharing include at

least %h, %p, and %r. This ensures that shared connections are uniquely identified.

%r 为远程机器的登录名

%h 为远程机器名

原理分析

严格地讲,它并不是真正意义上的Session Copy,而只能说是共享Socket。

第一次登录的时候,将Socket以文件的形式保存到:/tmp/ssh-%r@%h这个路径

之后登录的时候,一旦发现是同个主机,则复用这个Socket

故,一旦主进程强制退出(Ctrl+C),则其他SSH则被迫退出。

可以通过ssh -v参数,看debug信息验证以上过程

备注

有同学说在linux上通过证书的形式,可以实现免登录,没错。

对于静态密码,完全可以这么干;对于动态密码(口令的方式),则上述手段可以方便很多。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|富贵论坛 ( 琼ICP备2022019866号-1 )

GMT+8, 2024-5-24 05:46 , Processed in 0.138440 second(s), 38 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表