小生博客:http://xsboke.blog.51cto.com

                -------谢谢您的参考,如有疑问,欢迎交流

通过给ssh添加一个自定义命令选项-U的方式实现

操作步骤:

# 1. 下载openssh源码
# 2. 修改源码然后安装(注意安装位置,不要和原有的ssh冲突)
# 3. 测试

开始:

# 安装依赖
yum -y install gcc gcc-c++ make automake zlib zlib-devel openssl-devel

# 下载源码并且解压
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz
tar zxf openssh-7.9p1.tar.gz
cd openssh-7.9p1

修改源码:

找到ssh.c
我这里是使用-U作为新增的命令选项
首先在usage函数里面添加一个命令选项的提示,如206行

Linux给ssh添加一个连接标识_第1张图片

然后找到660行
原图如下:

Linux给ssh添加一个连接标识_第2张图片

在660行和661行分别添加u和U,最后要以:号结尾

Linux给ssh添加一个连接标识_第3张图片

然后再跳到switch循环的末尾,在default前面为新加的命令选项添加一个case

Linux给ssh添加一个连接标识_第4张图片

因为我们的-U只是实现一个标识,并没有什么功能,所以直接匹配到之后break就行
接下来就可以编译安装openssh了,为了不和系统原有的ssh冲突,我们将修改过源码的openssh安装在其他目录下
./configure --prefix=/usr/local/openssh7.9p1
make
make install
好了,最后我们测试一下

Linux给ssh添加一个连接标识

然后开一个新的终端ps一下

Linux给ssh添加一个连接标识_第5张图片