【问题标题】:vi over netcat sessionvi over netcat 会话
【发布时间】:2015-06-01 19:11:06
【问题描述】:

是否可以在 netcat 上使用 vi ?

服务器:

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

客户:

netcat SERVER_IP 4444

会给我远程shell,但是发送特殊热键是个问题,例如我不能按ESC进入“普通模式” em>vi.

或者最好的选择是 sed

【问题讨论】:

    标签: shell vi netcat


    【解决方案1】:

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

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

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

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

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

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

    client$ stty -icanon -echo; nc localhost 4444
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-08
      • 2015-08-18
      • 2018-03-25
      • 2013-09-18
      • 1970-01-01
      • 2021-12-23
      • 2020-10-09
      • 1970-01-01
      相关资源
      最近更新 更多