【问题标题】:Text editor that can edit using sudo over ssh?可以在 ssh 上使用 sudo 进行编辑的文本编辑器?
【发布时间】:2013-12-23 03:17:43
【问题描述】:

我正在尝试编辑远程 Amazon EC2 Linux 实例上的文件。我目前只是在使用 nano,但我真的很想要一个图形文本编辑器。我有两个问题:

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

请帮忙!我并不挑剔,只是任何图形文本编辑器,因为使用 nano 是一件非常痛苦的事情。

【问题讨论】:

标签: ssh amazon-ec2 remote-access sudo remote-server


【解决方案1】:

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

http://www.jedit.org

它使用 sshConsole 插件“始终”支持 sftp 读取和写入文件。

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

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

您的开发人员是否在 AWS 用户的主文件夹中工作,以便您可以完全控制源文件。然后使用指向实际服务器文件树的符号链接,这样您就可以将其提供给自己进行测试。 nginx 和 apache 中有很多控件可以限制谁可以查看您的开发站点。

编辑/更新:

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

【讨论】:

    【解决方案2】:

    帮助任何只需要快速命令行文本编辑器的人:

    你可以使用vi

    vi file-name.txt
    

    纳米

    nano file-name.txt
    

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

    sudo nano file-name.txt
    

    【讨论】:

      【解决方案3】:

      非常想要一个图形文本编辑器

      您不能拥有图形编辑器,您需要使用任何编辑器,如您所说的 nano 或 vim,emacs。当您必须以 root 作为所有者编辑配置文件时,将需要 Sudo。

      【讨论】:

        【解决方案4】:

        我为 AWS 上基于 GUI 的文本编辑器发现了一个奇怪的解决方法,我使用了 Jupyter Notebook。如果您的实例上安装了 Anaconda,请按照以下步骤操作

        • 使用ssh -i <location of your private key> <username>@<public DNS> SSH 到您的实例上
        • 使用 jupyter notebook --no-browser --port=8888 在您的实例上启动 jupyter notebook
        • 打开一个新的终端窗口并使用ssh -i <location of your private key> -L 8212:localhost:8888 <username>@<public DNS> SSH 到您的 jupyter notebook
        • 现在你可以在localhost:8212打开jupyter notebook

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

        【讨论】:

          【解决方案5】:

          亚马逊现在收购了 Cloud9,这是一个基于浏览器的 IDE,可以编辑您的 EC2。

          https://aws.amazon.com/cloud9/

          【讨论】:

            【解决方案6】:

            对于远程编辑,这里有 很多 个选项:这个答案和其他答案一样,随着更多选项进入该字段,肯定会过时。

            我建议从您喜欢的编辑器开始,然后从那里评估选项。如果您将 SSH 会话设置为能够直接向 root 进行身份验证(password auth 最好对 root 禁用,但如果您有 sudo,则可以安装 RSA 密钥),那么您将能够将 root 指定为上述任何一个的目标用户。


            相比之下,如果你真的确实需要sudo,你仍然有选择:

            【讨论】:

              【解决方案7】:

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

              【讨论】:

                【解决方案8】:

                为此,我建议以下之一:

                1. 学习和使用 emacs;就文本模式编辑器而言,它非常强大。

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

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

                【讨论】:

                  【解决方案9】:

                  只需修改本地计算机上的相应文件并将文件 scp 到远程计算机。

                  scp <local_machine_path_to_file> remoteUser@remoteHostName:<filePath>
                  

                  【讨论】:

                    【解决方案10】:

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

                    【讨论】:

                      【解决方案11】:
                      ssh -X user@server. 
                      

                      您必须为转发进行适当的设置。

                      【讨论】:

                        【解决方案12】:

                        Sudo 用于该特定命令的 root 权限。您将需要使用 root 权限来编辑系统文件。即使在本地机器上。如果您不喜欢每次都输入sudo,可以输入sudo -s。您将更改为 root 用户,它会在终端中显示您,即 root@ip.... $ 符号也将更改为 #。老实说,我更喜欢不使用 root,因为使用 root 权限更容易犯不可挽回的错误。我犯了一些错误,我是根据经验说话......

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

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

                        您还可以编辑文件的本地副本,然后使用 FileZilla 进行传输。 Setting up FileZilla 使用您的 EC2 实例非常简单。您可以尝试一下 vim,因为它会为您的代码着色并且比 nano 更先进。从终端使用命令vivim

                        SSH 快乐 ;)。

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2016-01-21
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多