背景:做项目,客户提供堡垒机,但是堡垒机不能支持mac系统终端工具,只支持xshell等windows生态。堡垒机页面没有文件上传下载功能。只能依托xshell等的sz/rz功能,但是mac系统本身是不支持rz/sz的功能的。所以开始了下面的折腾。
目的:mac系统支持的服务器连接工具(iterm2,termius)等登上堡垒机,进入服务器,进行日常的运维
过程:
- 1、我本身用了termius几年,所以折腾了半天termius能否支持rz/sz;最终失败告终,后续有时间再接着折腾
- 2、网上都是说iterm2能很好的支持,所以就选择了,废话不多说,下面开始干货
步骤:
- 一、iTerm2的安装
直接官网下载:https://www.iterm2.com/downloads.html 下载的是压缩文件,解压后直接双击执行程序文件,或者直接将它拖到 Applications 目录下即可。
- 二、安装lrzsz
brew自己自行百度安装
brew install lrzsz
检查是否安装成功
brew list
定位lrzsz的安装目录(后面又用)
brew list lrzsz
- 三、下载iterm2-zmodem,在iTerm2中使用Zmodem传输文件
cd /usr/local/bin
wget https://raw.github.com/mmastrac/iterm2-zmodem/master/iterm2-send-zmodem.sh wget https://raw.github.com/mmastrac/iterm2-zmodem/master/iterm2-recv-zmodem.sh chmod 777 /usr/local/bin/iterm2-*
备注:wget没有的话,可以brew install wget安装
- 配置iterm2-send-zmodem.sh/iterm2-recv-zmodem.sh
- 看看lrzsz的安装目录:
- 配置iterm2-send-zmodem.sh的sz脚本位置
配置这个位置,我是采用软连接的方式处理的,iterm2-recv-zmodem.sh也是一样的。
ln -s /opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/rz /usr/local/bin/rz
ln -s /opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/sz /usr/local/bin/sz
- 四、iTerm2 配置添加rz sz 功能
- 点击 iTerm2 的设置界面 settings-> Profiles -> Default -> Advanced -> Triggers 的 Edit 按钮
- 配置内容如下:
第一行:
rz waiting to receive.\*\*B0100
Run Silent Coprocess
/opt/homebrew/bin/iterm2-send-zmodem.sh
instant:钩上
第二行:
\*\*B00000000000000
Run Silent Coprocess
/opt/homebrew/bin/iterm2-recv-zmodem.sh
instant:钩上
到此:mac系统的rz/sz就配置结束了,下面就是连接远程跳板机进入服务器上传或下载文件
- 五、iterm2配置ssh登陆
- 在.ssh/目录下创建配置文件
# 跳到指定目录下,创建配置文件
cd ~/.ssh/ touch XXX # 创建一个文件,如:langjiu
touch login.sh # 创建登陆脚本,配置环境变量,不然expect命令连接服务器会导致乱码,rz/sz失效
- 编辑配置文件langjiu内容
#!/usr/bin/expect -f
set host xxx
set user xxx
set port xxx
set password xxx
#set timeout -1
spawn ssh -p $port -oHostKeyAlgorithms=+ssh-dss $user@$host
expect "$user@$host's password:"
send "$password\r"
interact
expect eof
- 编辑配置文件login.sh内容
#!/bin/sh
basepath=$(cd `dirname $0`; pwd)
export LC_CTYPE=en_US
#expect脚本所在位置
filepath=$1
if [ -f $filepath ]; then
expect $filepath
else
echo "$filepath not exits"
fi
- 配置iTerm2
- settings-> Profiles
- 点标号2加号添加配置会弹出3
- 3、输入配置名称,远程服务器名称
- 4、选command
- 5、配置执行命令:上一步login.sh和langjiu
- iTerm2远程登录
- profiles->langjiu 即可登陆到目标服务器
至此,mac配置sz、rz和iterm2配置ssh脚本完成;
可以开始使用rz和sz命令了