小知识:Linux下SSH Session复制功能实现方法

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

详细方法

代码如下:

Linux

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

Host * 

ControlMaster auto 

ControlPath <a>/tmp/ssh-%r@%h</a>

至此只要第一次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上通过证书的形式,可以实现免登录,没错。 

对于静态密码,完全可以这么干;对于动态密码(口令的方式),则上述手段可以方便很多。
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Linux系统中的gdb程序调试工具的命令知识介绍

2023-6-5 7:37:43

建站知识

小知识:linux下通过使用taskset命令来限制进程的CPU

2023-6-5 7:54:07

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索