0
我正致力于在两台服务器之间启用会话复用。 我想在创建新服务器(或IP)之前关闭所有现有套接字,并在完成我的任务后关闭新创建的服务器(或IP)。这是我迄今所做的:如何关闭SSH套接字
SSHSOCKET=~/.ssh/remote_$remote_ip
ssh -M -f -N -o ControlPath=$SSHSOCKET $remote_ip -p $remote_port
可以搜索控制路径是::
:ps x | grep $remote_ip | grep ssh | cut -d '=' -f 2
/root/.ssh/remote_192.168.20.2 192.168.20.2 -p 222
可以通过关闭套接字
remote_ip=192.168.20.2 #User inut
remote_port=222
可以通过创建套接字
ssh -S /root/.ssh/remote_192.168.20.2 192.168.20.2 -p 64555 -O exit
试图通过以下方式关闭套接字:
ps x | grep $remote_ip | grep ssh | cut -d '=' -f 2 | xargs ssh -S | xargs -i {} "-O exit"
,但我得到:
ps x | grep $remote_ip | grep ssh | cut -d '=' -f 2 | xargs ssh -Stt | xargs -i {} "-O exit"
ssh: Could not resolve hostname /root/.ssh/remote_192.168.20.2: Name or service not known
xargs: ssh: exited with status 255; aborting
任何人都可以请帮我这个:
Pseudo-terminal will not be allocated because stdin is not a terminal.
使用-t和-tt试过吗?
为什么你需要*一个ptty分配?这是一个警告,而不是一个错误。你是否有理由不忽略它? –
虽然'xargs -i {}“-O exit”'有它自己的问题,与PTY分配无关。 –
......坦率地说,你为什么要吝啬'ps'呢?您可以直接从文件系统获取套接字。 –