ITerm2下使用ssh访问Linux(包括堡垒机)

mac下没有xshell,虽然有SecurtCRT,但是真的太丑了.我还是比较喜欢用Iterm2来进行远程连接.
这样不可避免的会碰到要记录远程密码,如果每次都输入,那就太麻烦了.

Iterm2下使用ssh访问Linux

通过情况下,Iterm2访问远程Linux使用ssh命令,如下:

1
ssh <用户名>@<ip>

然后输入访问密码即可登录进去.有时候远程访问的默认端口如果不是22,那就需要额外加上-p参数跟上远程访问端口进行登录了.
很明显如果每次都要输入访问密码,那在开发过程中是相当的不方便的.

这里有两个方式实现免密登录.都是用Iterm2的Profiles功能加上脚本来实现.

方式1:使用spawn脚本文件

将远程访问的相关内容写成一个脚本,然后在Profile里面调用即可.

1
2
cd /Users/hushiwei/.ssh/
$ touch filename

脚本内容

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/expect -f
set user <用户名>
set host <ip地址>
set password <密码>
set timeout -1
spawn ssh $user@$host
expect "*assword:*"
send "$password\r"
interact
expect eof

如何调用呢?
在command中使用命令.command在哪看下面的图你就知道了.

1
expect <保存的脚本完整路径>

方式2:使用sshpass(推荐方式)

brew安装sshpass

1
brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb

然后把密码写入到一个文件中

1
2
3
4
hushiwei@localhost  ~/sshpass  pwd
/Users/hushiwei/sshpass
hushiwei@localhost  ~/sshpass  more pass
passwd123

参考图中进行配置
sshpass

command写上命令

1
/usr/local/bin/sshpass -f /Users/hushiwei/sshpass/pass ssh -p22 用户名@密码

然后在iterm2的菜单栏选择Profiles,然后点击刚刚的配置,即可免密自动登录到服务器上

  • 注意:首先用命令行登录一次

iterm2登录堡垒机

通过SSH和密钥文件(.pem格式)登录服务器[可能是堡垒机]

首先修改下密钥文件权限

1
sudo chmod 600 /Users/hushiwei/sshpass/Jumpserver/hushiwei.pem

其次,终端可直接命令连接

1
ssh -i /Users/hushiwei/sshpass/Jumpserver/hushiwei.pem hushiwei@xxx.xxx.xxx.xxx

注:首次连接时,会弹出密钥文件密码输入框,可以输入并保存!

除了直接命令连接外,也可参考上面Profiles功能,配置好,直接在Profile里调用!简单脚本如下:

配置Profile脚本自动登录堡垒机

脚本文件 vim jumpserver

1
2
3
4
5
6
7
8
9
10
hushiwei@localhost  ~/sshpass/Jumpserver  more jumpserver
#!/usr/bin/expect -f
set user hushiwei
set host xxx.xxx.xxx.xxx
set empath /Users/hushiwei/sshpass/Jumpserver/hushiwei.pem
set timeout -1
spawn ssh -i $empath $user@$host
interact
expect eof

命令行执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
hushiwei@localhost  ~/sshpass/Jumpserver  expect /Users/hushiwei/sshpass/Jumpserver/jumpserver
spawn ssh -i /Users/hushiwei/sshpass/Jumpserver/hushiwei.pem hushiwei@xxx.xxx.xxx.xxx
Last login: Fri Aug 18 11:06:16 2017 from xxx.xxx.xxx.xxx
### 欢迎使用Jumpserver开源跳板机系统 ###
1) 输入 ID 直接登录 或 输入部分 IP,主机名,备注 进行搜索登录(如果唯一).
2) 输入 / + IP, 主机名 or 备注 搜索. 如: /ip
3) 输入 P/p 显示您有权限的主机.
4) 输入 G/g 显示您有权限的主机组.
5) 输入 G/g + 组ID 显示该组下主机. 如: g1
6) 输入 E/e 批量执行命令.
7) 输入 U/u 批量上传文件.
8) 输入 D/d 批量下载文件.
9) 输入 H/h 帮助.
0) 输入 Q/q 退出.
Opt or ID>:

参考上面的Profile功能,配置好,直接在Profile里调用即可

1
2
# 在Command里面写入以下即可
expect /Users/hushiwei/sshpass/Jumpserver/jumpserver

Donate comment here