vi over netcat session

时间:2015-03-28 13:51:46

标签: shell vi netcat

是否可以在netcat上使用vi?

服务器:

mkfifo tun; sh tun | netcat -l 4444 > tun

客户端:

netcat SERVER_IP 4444

会给我远程shell,但发送特殊热键是个问题,例如我无法按 ESC 进入<正常模式“ EM>六

或者最佳选择 sed

1 个答案:

答案 0 :(得分:2)

此命令将来自nc的输入作为脚本运行,并且它将失败,原因与此脚本不会编辑文件的原因相同:

#!/bin/sh
vi file
42G
dd
:wq

具有讽刺意味的是,您可以使用script来避免将其作为脚本运行,而是让终端会话与之交互:

server$ mkfifo tun; script -q < tun | netcat -l 4444 > tun

(某些netcats在上面的端口之前需要-p

此外,您应该禁用本地回显和行缓冲,以便密钥立即通过连接而不是按Enter键:

client$ stty -icanon -echo; nc localhost 4444

您现在应该可以编辑vi中的文件了。

这显然只是一个简洁的概念证明。希望通过网络提供强大shell访问权限的非root用户应使用sshd