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 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上通过证书的形式,可以实现免登录,没错。

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

时间: 2024-09-10 00:48:33

Linux下SSH Session复制功能实现方法的相关文章

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

linux下python抓屏实现方法

  本文实例讲述了linux下python抓屏实现方法.分享给大家供大家参考.具体实现代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 7

Linux下获取用户主目录的方法分享

  Linux下获取用户主目录的方法分享     方法如下 char *path = getenv("HOME"); printf("path = %sn",path); getenv是标准库函数,包含stdlib.h头文件就可.

解决Linux下U盘乱码的方法

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

在Linux下开发GUI程序的方法

在Linux下开发GUI程序的方法有很多,比如Gnome桌面使用GTK+作为默认的图形界面库,KDE桌面使用Qt作为默认的图形界面库,wxWidgets则是另一个使用广泛的图形库,此外使用Java中的Swing/AWT组件也可以用于开发Linux下的GUI应用. 本文将依次介绍GTK+.Qt.wxWidgets和Swing/AWT,对其进行对比分析. 1. GTK+ 平台支持 虽然GTK+最初是为X Window系统开发的,但是目前已经发展成为一个跨平台的图形界面API,其支持的平台包括: Li

Linux 下 SSH 命令实例指南

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

让你提前认识软件开发(51):VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改

第3部分 软件研发工作总结 VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改   [文章摘要]         Pclint是一种C/C++软件代码静态分析工具.它是一种更加严格的编译器,能够发现普通编译器所不能发现的代码中的很多问题,因此被广泛应用于软件开发项目中.        本文介绍了如何在VC++集成开发环境中配置Linux下的Pclint工程,给出了C语言中pclint规则A检查的常见错误,并描述了对应的修改办法.   [关键词]          VC++

Python实现Linux下守护进程的编写方法_python

本文实例讲述了Python实现Linux下守护进程的编写方法,分享给大家供大家参考,相信对于大家的Python程序设计会起到一定的帮助作用.具体方法如下: 1. 调用fork()以便父进程可以退出,这样就将控制权归还给运行你程序的命令行或shell程序.需要这一步以便保证新进程不是一个进程组头领进程(process group leader).下一步,'setsid()',会因为你是进程组头领进程而失败.进程调用fork函数时,操作系统会新建一个子进程,它本质上与父进程完全相同.子进程从父进程继

总结UNIX/LINUX下C++程序计时的方法_C 语言

前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较.但要精确测量程序的运行时间并不容易,因为进程切换.中断.共享的多用户.网络流量.高速缓存访问及转移预测等因素都会对程序计时产生影响. 下面看看小编为大家整理几个计时方法 方法一: 如果是想统计某个程序的运行时间,那么可以使用 time ./a.out 方法二: 如果是想对某个函数或者语句进行计时,那么有别的方法.比如说,gettimeofday函数.直接贴示例代码: #include <sys/time.h> v