前言
连接远程服务器的工具有很多,本人也基本都折腾过,总结下来体验最好、使用人数最多的两款非xshell和SecureCRT莫属,看下对比图:
工具 | 支持的平台 | 会话复制 | 是否有免费版 | 正版价格 |
---|---|---|---|---|
Xshell | Windows | 支持 | 有 | ¥988+ |
SecureCRT | Windows、Mac、Linux | 支持 | 无 | ¥900+ |
相信大多数人都是用习惯了但“买不起”的,虽然网上有很多破解版,但是老觉得用着不踏实(这玩意会不会有木马?有没有后门?我的密码泄露了怎么办?)。
替代方案
对于使用Mac的同学,比较简单的替代方案是使用iterm2。
目前网上介绍最多的是以下两种方式实现的自动登录:
shell脚本 + expect + iterm2触发器
shell脚本 + sshpass
这两种方式都显得很蹩脚,还得用shell脚本?kao。
而且密码还明文暴露在shell脚本里,不加个密吗?
对密码和shell不敏感的小伙伴自己去搜下怎么实现的吧,此处不推荐。
这里介绍的方式是纯使用iterm2
实现,可以做到不暴露明文密码。
缺点是非自动登录,需要借助快捷键调出密码管理器。
什么?不自动登录?还得再学一个快捷键?那你说个毛线!
我不管,我就是不想用shell脚本,我就是不想密码明文写在文件里边。
我不管,我就是不想用shell脚本,我就是不想密码明文写在文件里边。
我不管,我就是不想用shell脚本,我就是不想密码明文写在文件里边。
先来个演示
cmd + o
打开服务器列表,方向键选择要登录的机器,回车,提示输入密码;option + cmd + f
打开密码管理器,方向键选择密码,回车,即可登录;- 此时若重复步骤1,借助ssh会话复制已不需要输入密码。
开始配置
添加服务器
点击iterm2—>Preferences—>Profiles,按图示配置一个新的profile
配置密码管理器
点击iterm2—>Window—>Password Manager,按图示配置一个密码,配置完后可按ESC
键关闭该窗口
配置SSH会话复制、会话保持
使用过SecureCRT和Xshell的同学都知道有个session copy的功能,其实ssh本身就支持这个,只需在~/.ssh/config
文件里添加几行配置即可。
# 会话复制相关配置
Host *
ControlMaster auto
ControlPath /tmp/ssh-%r@%h
# 会话保持相关配置,防止长时间不操作ssh断开连接
ServerAliveInterval 10