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

2017/8/17 posted in  Mac

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

Iterm2下使用ssh访问Linux

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

ssh <用户名>@<ip>

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

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

方式1:使用spawn脚本文件

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

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

脚本内容

#!/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在哪看下面的图你就知道了.

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

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

brew安装sshpass

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

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

hushiwei@localhost  ~/sshpass  pwd
/Users/hushiwei/sshpass
hushiwei@localhost  ~/sshpass  more pass
passwd123

参考图中进行配置
sshpass

command写上命令

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

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

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

iterm2登录堡垒机

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

首先修改下密钥文件权限

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

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

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

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

为了免密登录,可以使用ssh-add添加pem文件

ssh-add -k /Users/hushiwei/sshpass/Jumpserver/hushiwei.pem

输入pem文件的密码,后续即可免密登录了.可以直接使用这个命令登录了

ssh hushiwei@xxx.xxx.xxx.xxx(堡垒机ip)
# 也仍然可以不用密码使用这个命令登录了
ssh -i /Users/hushiwei/sshpass/Jumpserver/hushiwei.pem hushiwei@xxx.xxx.xxx.xxx

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

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

脚本文件 vim jumpserver

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

命令行执行

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里调用即可

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