可以在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个回答

0

我在AWS上找到了一个奇怪的解决方法,用Jupyter Notebook作为基于GUI的文本编辑器。如果您的实例上已安装Anaconda,则可以按照以下步骤操作:

  • 使用ssh -i <您的私钥位置> <用户名>@<公共DNS>登录到您的实例
  • 使用jupyter notebook --no-browser --port=8888在您的实例上启动jupyter notebook
  • 打开一个新的终端窗口,并使用ssh -i <您的私钥位置> -L 8212:localhost:8888 <用户名>@<公共DNS>登录到您的jupyter notebook
  • 现在您可以在localhost:8212上打开jupyter notebook

使用jupyter notebook环境,您不仅可以启动和运行Ipython笔记本,还可以创建和编辑任何文件,就像文本编辑器一样。


0
为了帮助其他人解决同样的问题,我建议使用jEdit。它非常强大,并且具有非常丰富的插件环境、语言解析等功能。

http://www.jedit.org

它一直通过sshConsole插件支持sftp读写文件。

我现在在我的AWS EC2实例上使用由AWS提供的密钥对。

最后,在“生产”环境中编辑属于root的文件不是一个好主意。

在AWS用户的主文件夹中进行开发工作,以便您完全控制源文件。然后,使用符号链接到实际服务器的文件树,以便您可以将其用于自己的测试。nginx和apache有很多限制谁可以查看您的开发网站的控件。

编辑/更新:

NppFtp插件为Notepad ++提供与AWS的sftp访问。 我刚刚使用他们在AWS登录时提供的.pem文件进行了测试。


-1

针对这个问题,我建议以下几种方法:

  1. 学习并使用emacs;在文本模式编辑器中,它非常强大。

  2. 在服务器上安装您喜欢的图形化编辑器,并使用X转发,'ssh -X server.com'。这将允许您远程启动编辑器,但在本地显示。

  3. 在我看来最优雅的方法是,使用sshfs(https://github.com/libfuse/sshfs)将远程目录挂载到本地,这样您就可以直接使用您喜欢的文本编辑器处理文件。


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