当前位置: 首页 > news >正文

【教程】MacBook 使用 iTerm2 连接跳板机和开发机

目录

  • 背景
  • iTerm2 配置步骤
  • 问题排查与处理
      • 报错问题1:Permission denied (publickey)
      • 报错问题2:administratively prohibited

背景

从 Windows 笔记本更换到 MacBook,需要迁移远程连接配置,Windows 上使用的是 Xshell(参见【教程】Windows下 Xshell 连接跳板机和开发机),Mac 看大家推荐比较多的是 iTerm2,遂装之。

远程连接需求:通过密钥连接跳板机,再从跳板机通过密钥连接开发机。

iTerm2 配置步骤

  • Step1:在 ~/.ssh/ 目录下新建 config 文件,内容格式如下:
Host jumper # 给跳板机取个名字
	HostName xxx.xxx.com  # 填跳板机的IP 
	User zhangsan         # 填登陆跳板机的用户名
	port 22               # 填跳板机端口号
	IdentityFile /Users/xxx/xxx/ssh/id_rsa # 填登陆跳板机所使用的密钥文件的本机路径 

Host dev_name # 给开发机取个名字  
	HostName 12.3.456.789 # 填开发机的IP 
    PermitLocalCommand yes
	User lisi             # 填登陆开发机的用户名
	port 22               # 填开发机端口号
	IdentityFile /Users/xxx/xxx/ssh/another_id_rsa # 填登陆开发机所使用的密钥文件的本机路径
    ProxyCommand ssh jumper -W %h:%p # !!重要!! 
    ServerAliveInterval 10

在 iTerm2 终端测试下是否生效:

cd ~
ssh dev # 登陆跳板机
cd ~
ssh dev_name # 登陆开发机

如果登陆跳板机出现报错,常见情况是:密钥文件路径有没有误、格式有没有问题;如果需要内网才能访问,确认有没有连接内网或挂VPN;

如果登陆开发机有问题,请移步本文【问题排查与处理】;

都没有问题再进行下一步。

  • Step2:如果不想每次都通过命令行登陆,可以配置 iTerm2 Profiles:
    • Profiles -> Open Profiles… -> Edit Profiles…
      在这里插入图片描述
      在这里插入图片描述
    • 点击 + 新建一个 Profile,
      • 给 Profile 取个名字,比如跳板机就叫 jumper,开发机就叫 dev;
      • 在 Send text at start 处填 Step1 中的连接命令,例如连接跳板机就是 ssh jumper,连接开发机就是 ssh dev_name
        在这里插入图片描述
  • 设置完成就会出现在 Profiles 下,点击即可连接:

在这里插入图片描述

问题排查与处理

报错问题1:Permission denied (publickey)

我一开始直接把 Windows 电脑上 VScode 使用的 config 文件复制过来,跳板机的配置一样,开发机配置关键的 ProxyCommand 那行不一样:

Host jumper # 给跳板机取个名字
	HostName xxx.xxx.com  # 填跳板机的IP 
	User zhangsan         # 填登陆跳板机的用户名
	port 22               # 填跳板机端口号
	IdentityFile /Users/xxx/xxx/ssh/id_rsa # 填登陆跳板机所使用的密钥文件的本机路径 

Host dev_name # 给开发机取个名字  
	HostName 12.3.456.789 # 填开发机的IP 
	User lisi             # 填登陆开发机的用户名
	port 22               # 填开发机端口号
	IdentityFile /Users/xxx/xxx/ssh/another_id_rsa # 填登陆开发机所使用的密钥文件的本机路径
    ProxyCommand ssh.exe -p 22 zhangsan@xxx.xxx.com nc %h %p # 注意这行不一样

报错如下:

zsh:1: command not found: ssh.exe
kex_exchange_identification: Connection closed by remote host
Connection closed by UNKNOWN port 65535

将最后一行的 ssh.exe 改为 ssh

ProxyCommand ssh -p 22 zhangsan@xxx.xxx.com nc %h %p

还是报错,如下:

zhangsan@xxx.xxx.com: Permission denied (publickey).
kex_exchange_identification: Connection closed by remote host
Connection closed by UNKNOWN port 65535

最后修改成如下之后,成功连接了:

ProxyCommand ssh jumper -W %h:%p

报错问题2:administratively prohibited

如果还是不行,出现如下报错:

channel 0: open failed: administratively prohibited: open failed
stdio forwarding failed
kex_exchange_identification: Connection closed by remote host
Connection closed by UNKNOWN port 65535

在这里插入图片描述

可以尝试修改成如下:

ProxyCommand ssh -p 22 jumper nc %h %p

-------- 完结 --------

相关文章:

  • 增益调度控制 —— 理论、案例与交互式 GUI 实现
  • LeetCode Hot100 刷题笔记(3)—— 链表
  • Python作业2 蒙特卡罗方法手搓图形
  • 使用 VIM 编辑器对文件进行编辑
  • 路由器学习
  • 【C++奇遇记】C++中的进阶知识(多态(一))
  • 使用MySQL时出现 Ignoring query to other database 错误
  • NO.65十六届蓝桥杯备战|基础算法-贪心推公式排序|哈夫曼编码|拼数|奶牛玩杂技|哈夫曼编码|合并果子(C++)
  • 接口自动化学习二:session自动管理cookie
  • 网络协议:TCP,UDP详细介绍
  • Windows Flip PDF Plus Corporate PDF翻页工具
  • MySQL数据库精研之旅第五期:CRUD的趣味探索(中)
  • py文件打包为exe可执行文件,涉及mysql连接失败以及找不到json文件
  • 使用PyQt5绘制水波浪形的柱状显示流量—学习QTimer+QPainterPath
  • Logo语言的区块链
  • Compose组件转换XML布局1.0
  • 基于SpringBoot的医院信息管理系统(源码+数据库)
  • 基于Python的人脸识别校园考勤系统
  • 初见TypeScript
  • 微信小程序—路由
  • 上海装修公司网站建设/首页关键词优化价格
  • 电子商务网站建设下载/公司网站设计制作
  • 做网站制作怎么样/关键词排名查询官网
  • 设计大师网站/搜索引擎公司排名
  • 南京谁做免费网站/新闻20条摘抄大全
  • 长业建设集团有限公司网站/专业做网站的公司