vim - Neovim scp 不提示输入密码
问题描述
在 Vim 中,这会提示我输入允许我编辑远程文件的密码:
:e scp://username@host//path
然而,在 NeoVim 中使用相同的命令不会提示输入密码,因为底层命令:! scp user@host:path LOCAL-TEMPFILE
在 NeoVim 中不能以交互方式工作:https ://github.com/neovim/neovim/wiki/FAQ#-and-system-do-weird -事物与交互过程
使用通过 ssh 进行密码身份验证的 NeoVim 编辑远程文件的最佳做法是什么?
解决方案
我猜想提供此功能的netrw插件没有为 Neovim 安装/激活。检查:Nread
命令是否可用。比较:scriptnames
Vim 和 Neovim 的输出。阅读插件的文档:help pi_netrw
以了解如何安装和启用它。
更新:所以,从 开始的交互式命令存在Neovim 问题:!
,这就是 netrw 正在做的事情;该插件不捕获密码质询。基本上是在执行:! scp user@host:path LOCAL-TEMPFILE
如果您可以避免该问题(对主机使用基于密钥的 SSH 身份验证),您可以继续将 Neovim 与 netrw 一起使用。如果这对您真的很重要,则可以使用更详细的解决方法。(例如,我使用一个包装器ssh
来解析~/.ssh/config
自定义Password Hunter2
条目(这些密码在组织中是众所周知的,仅用于测试虚拟机,因此这里没有安全问题),然后用于sshpass
自动登录。)
否则,您必须切换到经典 Vim 进行 netrw 操作,或使用其他方式访问这些远程文件(例如SSHFS)。
推荐阅读
- python - python pandas crosstab:错误显示多于一列的百分比
- javascript - 同一页面上两个日历的不同设计
- python - 无法在 Jupyter Notebook 中加载 matplotlib
- javascript - Angular 6 setTimeout 和 clearTimeout 错误
- python - 如何处理 Django 中 base.html 上使用的动态项
- javascript - 无法使用点或括号表示法访问 json/javascript 对象中的键或数据,在获取后保存到状态
- cloud - 虚拟机实例没有足够的资源来满足请求
- c - 你能改变子进程的指令指针寄存器吗?
- python - 从 Django models.py 迁移模型后无法创建表
- angularjs - AWS 的 JavaScript 开发工具包更改 Angular.js 分隔符