Windows/Mac 通过跳板机连接服务器(1)

Windows/Mac 通过跳板机连接服务器(1)

背景

临时起意,向公司申请将 windows笔记本 更换为 MacBook Pro, 之前一直使用 xshell + xftp 进行终端登录和数据传输。于是开始探索xshell+xftp 在 Mac 上的替代品。

windows xshell 上的隧道和代理设置

此处略过填写堡垒机信息和用户身份验证的过程…
先在堡垒机上设置隧道:
在这里插入图片描述
此处略过填写服务器信息和用户身份验证的过程…
然后在要登陆的服务器上设置代理:

在这里插入图片描述
在这里插入图片描述

探索 mac 上的相似方式

  • 完全仿照 xshell 上的方式:
    登陆堡垒机的时候采用动态转发的方式建立隧道:

    ssh -D 1080 bastion.user@bastion.ip
    

    然后利用这个隧道进行目标机器的登陆:

    ssh -o ProxyCommand="nc -X 5 -x localhost:1080 %h %p" host.user@host.ip
    
  • vim ~/.ssh/config

    Host bastion
     Hostname bastion.ip
     Port 22
     User bastion.user
    Host host
     Hostname host.ip
     Port 22
     User host.user
     ProxyCommand ssh -q -x -W %h:%p bastion
    

    此时需要输入两次密码:

    uesr@ZBMac-C02G14F5MD .ssh % ssh host
    bastion.user@bastion.ip's password:
    host.user@host.ip's password:
    Last login: Mon Nov  1 17:09:14 2021 from 172.20.xxx.127
    

    那么我们利用 expect 脚本来设置自动登录:
    vim server

    #!/usr/bin/expect
    
    set timeout 30
    spawn ssh [lindex $argv 0]
    expect {
            "(yes/no)?"
            {send "yes\n";exp_continue}
            "password:"
            {send "[lindex $argv 1]\n"}
    }
    expect {
            "password:"
            {send "[lindex $argv 2]\n";}
    }
    interact
    

    运行 expect ./server host bastion.passwd host.passwd
    可以在iterm2中利用profile设置为类似xshell中的那样一键登录:

    1. 选择Command,要用expect 执行:
      在这里插入图片描述

    2. 选择 Login Shell,要赋予 server 权限,如 chmod 777 ./server:在这里插入图片描述

至此,相当于完成了Mac上的 xshell 设置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值