如果我直接使用ssh ssh [email protected]
,则服务器将正常运行,并且我可以在注销之前执行任意数量的命令。
服务器IP地址与我的网络设置中定义的IP地址非常相似,但是最后一个八位位组已切换。以下命令从中读取ifconfig
并生成正确的IP地址。
ifconfig Netcon | grep "inet " | printf `awk '{ print $2 }'` | tail -c 1 | ssh -tt [email protected].`tr 12 21`
SSH提示输入服务器密码并登录,并在提示下显示新的主机名。但是,我输入的任何内容都不会执行。
Last login: Fri Feb 28 09:07:38 2020 from 192.168.13.2
[email protected]:~$ ping google.com
cd
asdasdwjawdi
如果我-tt
从SSH呼叫中删除,则登录失败并显示:
tput: No value for $TERM and no -T specified
您正在将标准输入与ssh
命令以及生成最终八位位组所需的处理混合在一起。本质上,您的命令处于这种状态,
echo 1.2.3.4 | ssh -tt user@`tr 12 21`
由此,我希望您能看到tr
正在从echo
命令(您的管道)接收输入,因此未连接到终端。此外,ssh
还在尝试从管道读取其输入。
我想你可能想要的是
ip=$(ifconfig eth0 | awk '/inet / { split($2, ip, /\./); printf "%d.%d.%d.2\n", ip[1], ip[2], ip[3] }')
ssh "user@$ip"
或在没有临时变量的一行上,
ssh "user@$(ifconfig eth0 | awk '/inet / { split($2, ip, /\./); printf "%d.%d.%d.2\n", ip[1], ip[2], ip[3] }')"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句