在使用ssh的时候,可以看到ssh有很多功能,什么-o , -e等等。如下图

需求,想要给ssh增加一个参数的功能。比如说我现在的需求就是执行ssh的时候可以增加一个选项,给我每次ssh的操作搭一个标记,每次我grep这个我打的标记就可以准确的找到这个ssh的进程

那就要去找ssh的源码了

源码下载地址 http://www.openssh.com/portable.html

左侧选择相应os的平台,这里就以linux 为例,进入到linux的页面后

选择镜像位置之后点击下载

下载解压后找到ssh.h的这个文件,编辑

找到ssh的帮助代码块增加-z的一段自定义代码

在找到下面的功能代码块,在while中增加你要新增的参数我这里增加了 【Z】

然后在这块代码块的最后增加一个case(和shell 中的case有几分相似,然后增加功能)

我这里的功能就是打印我输入的tag 这个的optarg 就是-Z后面带的参数,我把他打印出来。就是printf,最后别忘了加上 break;

然后就可以放到linux服务器上编译安装了

编译方法

找到configure增加可执行权限

[root@node1 openssh-7.3p1]# cd /opt/src/openssh-7.3p1/
[root@node1 openssh-7.3p1]# chmod +x configure
执行编译
[root@node1 openssh-7.3p1]# ./configure --prefix=/opt/svr/openssl
prefix : 编译好以后安装的位置

最后显示这样就是编译成功,就可以安装了

*如果编译中有什么依赖的库需要安装,哪就yum安装就好了

没报错就接着安装。

make && make install

可能会出现下面的错误

[root@node1 openssh-7.3p1]# chmod +x mkinstalldirs

 然后重新安装 

验证:

[root@node1 openssl]# cd /opt/svr/openssl/
[root@node1 openssl]# ./bin/ssh -h

可以看到我们增加的一个参数

这样就增加了一个参数

2、抓取ssh的进程的操作

[root@MiWiFi-R1D-srv ~]# strace -p 6702 -t

 *注意,不要抓当前strace操作的ssh进程。会有很多输出的。

[root@MiWiFi-R1D-srv ~]# strace -p 6702 -t -o /FILE #输出到文件中

  

最新文章

  1. Vmware虚拟机进入BIOS方法
  2. javascript 函数重载 overloading
  3. 使用MapReduce实现join操作
  4. Appium之python API
  5. Linux内核--网络栈实现分析(九)--传输层之UDP协议(下)
  6. Dependency Injection in ASP.NET Core
  7. java第三章动手动脑
  8. Java多线程实现
  9. IE9 "CSS 因 Mime 类型不匹配而被忽略“问题
  10. Vim应用
  11. BZOJ 2751: [HAOI2012]容易题(easy)( )
  12. Linkedin工程师是如何优化他们的Java代码的(转)
  13. maven 项目中使用 jstl标签
  14. 创建自定义的Middleware中间件
  15. PHP字节格式化
  16. 1CCTableView的使用,TableView响应和小格子tableView实现
  17. 微信小程序60秒倒计时
  18. python学习日记(OOP——类的内置方法)
  19. entity.Database.SqlQuery() 和entity.Database.SqlCommand()
  20. Android 倒计时按钮,倒计时发送短信验证码…

热门文章

  1. 【转】Spring 获取web根目录 (Spring线程获取web目录/路径/根目录,普通类获取web目录)
  2. 问题解决(一)在ipad上通过safari浏览文档
  3. net-snmp源码VS2013编译添加加密支持(OpenSSL)(在VS里配置编译OpenSSL)
  4. webService 发送soap请求,并解析返回的soap报文
  5. 如何查看JDK以及JAVA框架的源码
  6. JAVA Math类
  7. selected对话框全选
  8. 用Unity开发HTC VIVE——移动漫游篇
  9. WCF ABC
  10. 处理mysql上百万条数据的优化