可以在ssh上使用sudo进行编辑的文本编辑器?

14

我想要在远程Amazon EC2 Linux实例上编辑文件。目前,我只是使用ssh和nano进行编辑,但我真的需要一个图形化的文本编辑器。我有两个问题:

  1. 当我通过ssh登录时,必须使用sudo来编辑这些服务器文件。
  2. 我只能使用亚马逊给我的密钥进行登录。例如: ssh -i Andrew.pem ec2-user@55.55.44.33

请帮忙!我不挑剔,只要能使用任何图形化文本编辑器,因为使用nano太麻烦了。


请参考以下链接:http://stackoverflow.com/questions/824327/text-editor-for-editing-files-over-ssh?rq=1 - tjcertified
由于@bluefeet不允许我在此处发布,请参见http://superuser.com/a/892882/25609以获取答案。 - laktak
Emacs和Vim都有相应的插件。例如,可以查看https://www.gnu.org/software/emacs/manual/html_node/emacs/Remote-Files.html以及Emacs的[Transparent, Remote (file) Access, Multiple Protocol](https://www.gnu.org/software/tramp/)模块。 - Charles Duffy
对于vim,可以使用netrw模块(http://www.vim.org/scripts/script.php?script_id=1075)来满足这个需求。使用gvim版本,你就有了图形化编辑器。 - Charles Duffy
13个回答

4
远程编辑有很多选择:像其它回答一样,随着更多的选项进入领域,这个回答也肯定会过时。
对于vim来说,默认情况下,netrw模块可以满足此需求,并已与编辑器一起发送。
对于emacs来说,TRAMP可用。
对于ATOM编辑器,请查看remote-files插件。
对于IntelliJ,在商业版本中支持在远程主机上编辑文件。
对于Eclipse,请查看Target Management项目中的Remote System Explorer。
我建议从您喜欢的编辑器开始评估选项。如果您设置SSH会话以直接验证到root(最好禁用root的密码身份验证,但如果您具有sudo,则可以安装RSA密钥),则您将能够指定root作为上述任何目标用户。
相比之下,如果您确实需要sudo,您仍然有选项:
请参见Emacs维基上使用tramp以sudo方式打开文件的内容。新版本还支持ssh+sudo传输,这意味着此wiki条目可能已过时。

4

为了帮助那些只需要快速使用命令行文本编辑器的人:

您可以使用vi

vi file-name.txt

或者nano:
nano file-name.txt

如果需要编辑文件,可以选择使用sudo命令,例如:

sudo nano file-name.txt

2

只需修改本地计算机上的适当文件,然后将文件scp到远程计算机。

scp <local_machine_path_to_file> remoteUser@remoteHostName:<filePath>

1

1
今天我发现了两个可以使用sudo的产品,它们分别是MobaXterm(免费版)和SmarTTY。
在文件浏览器中,MobaXterm有一个按钮可以启用sudo模式。您可以作为sudo用户查看、创建和编辑文件。需要时请使用此开关。不幸的是,这只适用于SCP协议。
SmarTTY的工作方式不同。当您尝试保存需要sudo的文件时,SmarTTY会抛出错误并立即建议尝试使用sudo保存文件。
在这两个产品中,我推荐使用MobaXterm。 enter image description here

0
我使用SFTP Net Drive SFTP,它可以让你在本地计算机上创建一个虚拟驱动器,将通过SFTP协议访问的远程文件系统映射到该驱动器上。创建映射后,你可以使用自己喜欢的编辑器。

0

Sudo是用于特定命令的root权限。即使在本地机器上,您也需要使用root权限来编辑系统文件。如果您不想每次都输入sudo,可以输入sudo -s。您将切换到root用户,并在终端中显示,例如root@ip.... $符号也会变成#。老实说,我更喜欢不使用root,因为使用root权限更容易犯下不可逆转的错误。我曾经犯过一些错误,这是我的亲身经历...

至于您问题的第二部分,您可以配置各种文本编辑器以sftp进入您的实例,例如sublime

每次使用终端进行ssh时,您都必须使用.pem密钥文件。这是因为AWS非常重视安全性。您可以将密钥文件放在主目录中。这样,您就不必每次打开终端时都更改目录。

您也可以编辑本地文件的副本,然后使用FileZilla进行传输。设置 FileZilla与您的EC2实例一起工作很简单。您可以尝试使用vim,因为它可以为您的代码着色,并且比nano更高级。从终端使用命令vivim

祝SSH愉快;).


0
“我真的想要一个图形化文本编辑器。”
您不能使用图形编辑器,需要使用像nano、vim或emacs这样的任何编辑器。当您必须编辑以root为所有者的配置文件时,需要使用sudo权限。

0
ssh -X user@server. 

您需要进行适当的转发设置。


0

你可以使用nano、vim、vi或其他编辑器。但是,如果您想使用图形文本编辑器进行编辑,则必须创建SFTP,因为Amazon不支持FTP。一种方法是使用FileZilla上传文件。这里有一个关于如何使用FileZilla的视频https://www.youtube.com/watch?v=VawBMj29g0o。我建议使用SSH。它快速且易于操作,这里有一个关于SSH的视频https://www.youtube.com/watch?v=O2-3HoRjBH4


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接