Linux下SSH Session复制

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

详细方法

?


1

2

3

4

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

Host *

ControlMaster auto

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

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

 

备注

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

 

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

 

时间: 2024-09-23 21:26:46

Linux下SSH Session复制的相关文章

Linux下SSH Session复制功能实现方法

  特别感谢阿干同学的邮件分享. 详细方法 代码如下: 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 shar

ssh免密-linux下文件夹复制hadoop问题

问题描述 linux下文件夹复制hadoop问题 两台阿里云服务器centos6.5,做hadoop完全分布式搭建,在搭建过程中采用的非root账户zhm,已经实现通过zhm账户免密登录另外一台阿里云,但是我在配置好hadoop相关配置文件后,将配置好的hadoop文件夹整体复制到另外一台阿里云时,通过zhm账户复制失败(如图),求助这是为什么呢,然后我用root用户,通过输入密码才把文件夹复制过去,zhm用户已经赋权和root一样的,按照我的理解应该是可以复制的啊,希望大神帮解答一下,无线感激

在Linux下用scp复制文件无需输入密码的技巧_linux shell

当两台LINUX主机之间要互传文件时可使用SCP命令来实现,建立信任关系之后可不输入密码.把你的本地主机用户的ssh公匙文件复制到远程主机用户的~/.ssh/authorized_keys文件中假设本地主机linux100,远程主机linux200 一,在linux100主机里的用户 运行 #ssh-keygen -t rsa 结果如下 QUOTE: Generating public/private rsa key pair. Enter file in which to save the k

Linux 下 SSH 命令实例指南

Linux 下 SSH 命令实例指南 如果你已经在IT圈内混久了, 应该对 SSH 这个了不起的工具及其安全特性有所耳闻吧. 本教程可以让你在短时间内掌握通过 SSH 安全便利地连接到远程计算机的技术. 如果你对 SSH 还没什么概念, 可以先访问 维基百科 进行了解. 基本用法 最简单的 SSH 命令只需要指定用户名和主机名参数即可. 主机名可以是 IP 地址或者域名. 命令格式如下: $ ssh user@hostname 比如要在我的局域网内登录一个树莓派系统, 只需要简单的在命令行输入如

详解 Linux 下 SSH 远程文件传输命令 scp

相信各位VPSer在使用VPS时会经常在不同VPS间互相备份数据或者转移数据,大部分情况下VPS上都已经安装了Nginx或者类似的web server,直接将要传输的文件放到web server的目录,然后在目标机器上执行:wgethttp://www.vpser.net/testfile.zip 就行了.当VPS上没有安装web server和ftp server的时候或感觉上面的方法比较麻烦,那么用scp命令就会排上用场. 一.scp是什么? scp是secure copy的简写,用于在Li

linux下SSH远程连接服务慢解决方案

1.适用命令及方案如下: [远程连接及执行命令] ssh -p22 root@10.0.0.19 ssh -p22 root@10.0.0.19 /sbin/ifconfig [远程拷贝:推送及拉取] scp -P22 -r -p /etc root@10.0.0.19:/tmp/ scp -P22 -r -p root@10.0.0.19:/tmp/ /etc [安全的FTP功能] sftp -oPort=22 root@10.0.0.19 [无密码验证方案] 例如利用sshkey批量分发文件

linux下ssh免密码登录远程服务器配置

在linux下使用ssh登录远程主机是非常容易的事,但对于懒人来说,经常输入密码却是一个非常痛苦的事,下面告诉你怎么免输入远程主机密码而ssh登录到服务器. 以下操作均在本地主机上进行,非root用户,系统是debian wheezy. 本地主机: ssh-keygen -b 1024 -t rsa 连续按Enter回车键即可,就会在~/.ssh/下生成两个文件: id_rsa  id_rsa.pub 我们需要做的就是上传id_rsa.pub到远程主机. #远程主机添加.ssh目录 ssh le

Linux下SSH,telnet,Secure CRT中文显示乱码

SSH,telnet终端中文显示乱码解决  代码如下 复制代码 # vi /etc/sysconfig/i18n 将内容:  代码如下 复制代码 LANG="en_US.UTF-8" SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en" SYSFONT="latarcyrheb-sun16" 改为:  代码如下 复制代码 LANG="zh_CN.GB18030" LANGU

Linux下SSH用FTP命令上传文件详解

如果没有ftp 提示: -bash: ftp: command not found 请先安装ftp应用程序: yum install ftp #ftp 127.0.0.1 21 输入远程空间的FTP IP和端口号,回车 然后根据提示输入用户名和密码即可! ftp>lcd 本地工作目录 ftp>cd 远程目录 ftp>binary 采用二进制传输 ftp> tick 开启传输时的字节计数器,再执行一次即可关闭 ftp>mput 文件 FTP> bye(或by) 结束和远程