【环境配置】expect实现ssh自动登陆+转发端口

需求

在linux系统上登陆实验室的服务器,由于需要通过ssh登陆,每次都要手动输入相关信息会比较麻烦,于是考虑使用expect结合ssh实现自动化的登陆方式,同时保留端口转发,可以实现tensorboard的图像查看。

设备

系统:Ubuntu 20.04

expect

expect是一个用来处理交互的命令。借助expect,我们可以将交互过程写在一个脚本上,使之自动化完成。ssh登录,ftp登录等都符合交互的定义。

expect是交互性很强的脚本语言,但是expect依赖于tcl,但linux系统里一般不自带安装tcl,需要手动安装。

1.首先检查tcl

whereis tcl

2.下载安装包

tcl版本 8.4.19

http://sourceforge.net/projects/tcl/files/Tcl/8.4.19/tcl8.4.19-src.tar.gz/download

except版本5.45

http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz

在这里插入图片描述

3.解压后安装

  1. 安装tcl
sudo ./configure
sudo make
sudo make install
  1. 安装expect
sudo apt install expect

(直接apt安装成功,所以没有使用安装包的安装方式)

4.配置ssh文件

在这里插入图片描述

ssh -L PORT:IP:PORT root@IP # ssh实现端口映射

set timeout 设置超时
spawn:启动新的进程
expect:从进程接收字符串
send:用于向进程发送字符串
interact:允许用户交互

总结

至此,在终端内运行相应的.sh文件就可以实现自动连接服务器、填写登陆密码、端口映射的功能。
不过,如果存在多个端口需要映射,此方法就需要启动多个终端。

Ref

https://blog.csdn.net/shimadear/article/details/93972559
https://blog.csdn.net/evglow/article/details/103080173
https://qastack.cn/programming/29936948/ssh-l-forward-multiple-ports

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值