Linux下SSH Session复制

羡慕Windows下secureCRT的Session Copy功能,一直在寻找Linux下类似的软件,殊不知SSH本身就支持此功能。
特别感谢阿干同学的邮件分享。

详细方法

?


1

2

3

4

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

Host *

ControlMaster auto

ControlPath /tmp/ssh-%[email protected]%h

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

配置文件分析

man ssh_config 5

?


1

2

3

4

5

6

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-%[email protected]%h这个路径
之后登录的时候,一旦发现是同个主机,则复用这个Socket
故,一旦主进程强制退出(Ctrl+C),则其他SSH则被迫退出。

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

备注

有同学说在linux上通过证书的形式,可以实现免登录,没错。
对于静态密码,完全可以这么干;对于动态密码(口令的方式),则上述手段可以方便很多。

http://www.cnblogs.com/killkill/archive/2012/05/22/2513192.html

时间: 2024-10-14 16:40:11

Linux下SSH Session复制的相关文章

linux下ssh使用rsa验证登陆MACOX

由于项目的需求,我这边ubuntu下常常需要SSH访问另外一台MACOS. 每次输入密码有点烦,就想到RSA公钥和密钥验证的方法. 像所有教程上讲的一样,本机执行 [email protected]:~$ ssh-keygen -t rsa 将公钥拷贝到MACOS的/tmp下,并给其他人以读权限: [email protected]:~$ scp .ssh/id_rsa.pub [email protected]:/tmp [email protected]'s password: id_rsa

linux下文件的复制、移动与删除

linux下文件的复制.移动与删除命令为:cp,mv,rm一.文件复制命令cp   命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination)             cp [option] source1 source2 source3 ... directory   参数说明:   -a:是指archive的意思,也说是指复制所有的目录   -d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身   -f:强制(force),

linux下ssh端口的修改和登录

linux下ssh端口的修改和登录 首先修改配置文件 vi /etc/ssh/sshd_config 找到#Port 22一段,这里是标识默认使用22端口,添加如下一行: Port 50000 然后保存退出 1.端口修改 执行/etc/init.d/sshd restart 这样SSH端口将同时工作在50000上. 2.防火墙修改 现在编辑防火墙配置:vi /etc/sysconfig/iptables 启用50000端口.添加如下一行 1 -A INPUT -m state --state N

Linux下SSH免密码登录

转自:http://haitao.iteye.com/blog/1744272 ssh配置 主机A:10.0.5.199 主机B:10.0.5.198 需要配置主机A无密码登录主机A,主机B 先确保所有主机的防火墙处于关闭状态. 在主机A上执行如下: 1. $cd ~/.ssh 2. $ssh-keygen -t rsa  --------------------然后一直按回车键,就会按照默认的选项将生成的密钥保存在.ssh/id_rsa文件中. 3. $cp id_rsa.pub author

在linux下的使用复制命令cp,不让出现“overwrite”(文件覆盖)提示的方法。(转)

在linux下的使用复制命令cp,不让出现"overwrite"(文件覆盖)提示的方法. 一般我们在使用cp命令时加上-f选项,希望不让出现"overwrite"的提示(文件覆盖的提示).如:# cp -rf sourcefile targetdir 或#cp -r -f sourcefile targetdir-r的意思是递归复制,也就是复制文件夹及其下所有文件.-f的意思是遇到同名的文件时不提示,直接覆盖. 但是为什么加上-f了,还出现"overwri

linux下ssh面密码登录设置

ssh 免密码登录 1. ssh-keygen -t rsa 三次回车 2. cat ~/.ssh/id_rsa.pub >>  ~/.ssh/authorized_keys 3. 验证 ssh localhost 如果不需要密码登录,表示设置成功 4. 面密码登录其他机器 ssh-copy-id -i hostname 注意:hostname必须在/etc/hosts文件绑定ip 这样本机就可以面密码登录目标机器 验证:ssh hostname 不需要密码登录 /etc/hosts文件只需要

Linux下SSH的Log文件路径

Redhat or Fedora Core: /var/log/secure # Mandrake, FreeBSD or OpenBSD: /var/log/auth.log # SuSE: /var/log/messages # Mac OS X (v10.4 or greater): /private/var/log/asl.log # Mac OS X (v10.3 or earlier): /private/var/log/system.log # Debian: /var/log/a

【转载】linux下文件的复制、移动与删除命令使用详解

[转载]原文链接:https://www.cnblogs.com/qiuhong10/p/7940410.html linux下文件的复制.移动与删除命令为:cp,mv,rm一.文件复制命令cp    命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination)              cp [option] source1 source2 source3 ...  directory    参数说明:    -a:是指archive的意思,也说是指复制

linux下ssh连接缓慢详解

摘自:https://blog.csdn.net/asd2479745295/article/details/83006379 linux下ssh连接缓慢详解原创皮的开心 最后发布于2018-10-11 09:13:37 阅读数 1824 收藏展开    最近发现公司新linux控制器使用ssh连接特别慢,大概要10秒钟左右,scp也是需要10秒左右,但是ping速度特别快.使用ssh -l IP -v 可以查看连接卡在,SSH2_MAG_SERVICE_ACCEPT received后,停顿了