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上通过证书的形式,可以实现免登录,没错。
对于静态密码,完全可以这么干;对于动态密码(口令的方式),则上述手段可以方便很多。

(0)

相关推荐

  • Linux下SSH命令使用方法详解

    操作方法 01 1.查看SSH客户端版本 有的时候需要确认一下SSH客户端及其相应的版本号.使用ssh -V命令可以得到版本号.需要注意的是,Linux一般自带的是OpenSSH: 下面的例子即表明该 ...

  • 解决Linux下U盘乱码的方法

    轻松解决Linux下U盘乱码的方法: 1.一般用这条命令: mount -o iocharset=utf8 /dev/sdb /tmp/fat 2.如若不行可试如下命令: mount /dev/sdb ...

  • linux下删除乱码文件名的方法

    linux下删除乱码文件名, 不废话: 1. ls -i 列出文件的节点ID, 如: 123456789 2. find ./ -inum 123456789 -print -exec rm -rf ...

  • linux下远程重启apache的方法

    打开后输入服务器用户名密码登陆。 接着输入命令:/etc/rc.d/init.d/httpd restart OK,就这么简单~~ LINUX下重启httpd服务,以及APACHE服务的方法 复制代码 ...

  • linux下vnc远程桌面连接方法分享

    使用ssh软件连接到系统,使用命令vncserver启动vnc服务 首次使用vncserver会提示输入密码,然后重复输入一次(此处输入geisnic.com 作为密码,须记住此密码),回车出现下图提 ...

  • Linux中SSH端口号更改方法介绍

    SSH端口默认是22了,我们为了服务器的安全一般会把SSH端口22修改成其它的端口好了,下文小编来各位整理一篇SSH端口修改教程供各位参考. vps一到手,第一件事就是更改ssh端口,使用一个不容易被 ...

  • 在Windows上访问Linux下的Samba服务器的方法

    首先先记录下在linux客户端怎么用命令访问windows或者linux的共享文件夹 第一步 代码如下: smbclient -L //192.168.100.5 -U wujie (smbclien ...

  • linux下时间同步的两种方法分享

    方法1: 与一个已知的时间服务器同步 复制代码 代码如下: ntpdate time.nist.gov 其中 time.nist.gov 是一个时间服务器. 删除本地时间并设置时区为上海 复制代码 代 ...

  • Linux下查看硬件信息的方法

    用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart) 查看CPU信息:cat /proc/cpuinfo 查看板卡信息:cat /proc/pci 查 ...