是否可以通过 netcat 使用 vi?
服务器:
mkfifo tun; sh tun | netcat -l 4444 > tun
Run Code Online (Sandbox Code Playgroud)
客户:
netcat SERVER_IP 4444
Run Code Online (Sandbox Code Playgroud)
Will 给了我远程 shell,但发送特殊热键是一个问题,例如我无法在vi中按ESC进入“正常模式” 。
或者最好的选择是sed?
此命令将来自 nc 的输入作为脚本运行,并且由于此脚本不会编辑文件的相同原因而失败:
#!/bin/sh
vi file
42G
dd
:wq
Run Code Online (Sandbox Code Playgroud)
具有讽刺意味的是,您可以使用script避免将其作为脚本运行,而是获取终端会话进行交互:
server$ mkfifo tun; script -q < tun | netcat -l 4444 > tun
Run Code Online (Sandbox Code Playgroud)
(有些netcats需要-p在上面的端口之前)
此外,您应该禁用本地回显和行缓冲,以便按键立即通过连接,而不是在按 Enter 时:
client$ stty -icanon -echo; nc localhost 4444
Run Code Online (Sandbox Code Playgroud)
您现在应该能够编辑vi.
这显然只是一个简洁的概念证明。想要通过网络提供强大的 shell 访问的非 root 用户应该使用sshd.
| 归档时间: |
|
| 查看次数: |
2595 次 |
| 最近记录: |