Neovim scp 不提示输入密码
Neovim scp doesn't prompt for password
在 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-things-with-interactive-processes
使用通过 ssh 进行密码验证的 NeoVim 编辑远程文件的最佳做法是什么?
我猜想提供此功能的 netrw 插件没有为 Neovim 安装/激活。检查:Nread
命令是否可用。比较 Vim 和 Neovim 的 :scriptnames
输出。阅读插件的文档 :help pi_netrw
了解如何安装和启用它。
更新:所以,事实证明有一个 Neovim issue 的交互式命令从 :!
开始,这就是 netrw 正在做的;该插件不会捕获密码挑战。它基本上是在执行 :! scp user@host:path LOCAL-TEMPFILE
如果你能避免这个问题(对主机使用基于密钥的 SSH 身份验证),你可以继续使用 Neovim 和 netrw。如果这对您真的很重要,则可以使用更详细的解决方法。 (例如,我使用围绕 ssh
的包装器解析 ~/.ssh/config
以获取自定义 Password Hunter2
条目(这些密码在组织中众所周知,仅用于测试 VM,因此这里没有安全问题), 然后使用 sshpass
自动登录。)
否则,您必须切换到经典 Vim 进行 netrw 操作,或使用其他方式访问这些远程文件(例如 SSHFS)。
在 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-things-with-interactive-processes
使用通过 ssh 进行密码验证的 NeoVim 编辑远程文件的最佳做法是什么?
我猜想提供此功能的 netrw 插件没有为 Neovim 安装/激活。检查:Nread
命令是否可用。比较 Vim 和 Neovim 的 :scriptnames
输出。阅读插件的文档 :help pi_netrw
了解如何安装和启用它。
更新:所以,事实证明有一个 Neovim issue 的交互式命令从 :!
开始,这就是 netrw 正在做的;该插件不会捕获密码挑战。它基本上是在执行 :! scp user@host:path LOCAL-TEMPFILE
如果你能避免这个问题(对主机使用基于密钥的 SSH 身份验证),你可以继续使用 Neovim 和 netrw。如果这对您真的很重要,则可以使用更详细的解决方法。 (例如,我使用围绕 ssh
的包装器解析 ~/.ssh/config
以获取自定义 Password Hunter2
条目(这些密码在组织中众所周知,仅用于测试 VM,因此这里没有安全问题), 然后使用 sshpass
自动登录。)
否则,您必须切换到经典 Vim 进行 netrw 操作,或使用其他方式访问这些远程文件(例如 SSHFS)。