我发现了这个问题,该问题解释了如何使用以下命令使用vim编辑远程文件:
vim scp://user@myserver[:port]//path/to/file.txt
是否可以通过根目录(通过sudo
)在远程主机上执行此操作?
我尝试在远程主机上创建具有root权限的文件,并使用上述内容对其进行编辑。Vim可以查看内容,可以对其进行编辑并可以对其进行保存,但是在远程主机上没有任何变化(可能是因为Vim只是保存了其临时文件,然后将其交给scp放回去了?)
使用我的用户保存的文件执行此操作时,它的行为符合预期。
我的SSH使用密钥进行身份验证,并且远程服务器对我的sudo访问具有NOPASSWD
这个问题是相似的,但是唯一带投票的答案是使用木偶,这绝对不是我想要使用的。
编辑:为了回应@drewbenn在下面的评论,这是我的完整编辑过程:
vim scp://nagios//tmp/notouch
/tmp/notouch
root拥有的文件在哪里,我看到vim快速显示
:!scp -q 'nagios:/tmp/notouch' '/tmp/vaHhwTl/0'
这会自动消失,并显示带有文本的黑屏
"/tmp/vaHhwTl/0" 1L, 12C
Press ENTER or type command to continue
按Enter键可以编辑文件
保存弹出时会弹出与开始时相同的scp命令,该命令会快速自动消失(很难及时读取,但肯定有scp和/ tmp / ...文件)
.vimrc
文件的原因,我想使用本地版本的vim
ssh -t host sudo vim file
?
ssh
进入服务器并在其中编辑文件(使用visudo
或其他命令)。其他任何事情都会影响安全性。