首页 > 解决方案 > 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 编辑远程文件的最佳做法是什么?

标签: vimscpneovim

解决方案


我猜想提供此功能的netrw插件没有为 Neovim 安装/激活。检查:Nread命令是否可用。比较:scriptnamesVim 和 Neovim 的输出。阅读插件的文档:help pi_netrw以了解如何安装和启用它。

更新:所以,从 开始的交互式命令存在Neovim 问题:!,这就是 netrw 正在做的事情;该插件不捕获密码质询。基本上是在执行:! scp user@host:path LOCAL-TEMPFILE

如果您可以避免该问题(对主机使用基于密钥的 SSH 身份验证),您可以继续将 Neovim 与 netrw 一起使用。如果这对您真的很重要,则可以使用更详细的解决方法。(例如,我使用一个包装器ssh来解析~/.ssh/config自定义Password Hunter2条目(这些密码在组织中是众所周知的,仅用于测试虚拟机,因此这里没有安全问题),然后用于sshpass自动登录。)

否则,您必须切换到经典 Vim 进行 netrw 操作,或使用其他方式访问这些远程文件(例如SSHFS)。


推荐阅读