ssh中exit命令退出远程服务器_连接后如何使用ssh运行本地命令,执行本地命令后退出?...

本文介绍了如何使用OpenSSH创建保持活动状态的SSH隧道,包括使用`-fNT-L`选项建立连接,以及通过`ControlMaster`和`ControlPath`配置实现会话复用。通过后台运行SSH和记录PID,可以方便地管理和关闭隧道。此外,还提供了在shell脚本中操作SSH隧道的方法。
摘要由CSDN通过智能技术生成

假设您从命令行使用OpenSSH ….

SSH可以打开一个连接,该连接将维持隧道并尽可能长时间保持活动状态:

ssh -fNT -Llocalport:remotehost:remoteport targetserver

您也可以在运行一段时间的服务器上启动SSH.隧道将在那时开放.只要隧道仍在使用中,远程命令退出后,SSH连接应保留.如果您只使用一次隧道,则指定一个简短的“休眠”以使隧道在使用后过期.

ssh -f -Llocalport:remotehost:remoteport targetserver sleep 10

如果您希望能够从本地运行的脚本中删除隧道,那么我建议您在shell中对其进行后台处理,然后记录pid以便稍后执行.假设您使用的是包含Bourne shell的操作系统….

#/bin/sh

ssh -f -Llocalport:remotehost:remoteport targetserver sleep 300 &

sshpid=$!

# Do your stuff within 300 seconds

kill $sshpid

如果使用shell对ssh进行后台处理不符合您的喜好,您还可以使用高级ssh功能来控制后台进程.作为described here,SSH功能ControlMaster和ControlPath是你如何使这项工作.例如,将以下内容添加到〜/ .ssh / config:

host targetserver

ControlMaster auto

ControlPath ~/.ssh/cm_sockets/%r@%h:%p

现在,您与targetserver的第一个连接将设置一个控件,以便您可以执行以下操作:

$ssh -fNT -Llocalport:remoteserver:remoteport targetserver

$ssh -O check targetserver

Master running (pid=23450)

$

$ssh -O exit targetserver

Exit request sent.

$ssh -O check targetserver

Control socket connect(/home/sorin/.ssh/cm_socket/sorin@192.0.2.3:22): No such file or directory

显然,这些命令也可以包装到shell脚本中.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值