可以使用sudo通过ssh编辑的文本编辑器?

时间:2013-12-05 23:01:41

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

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

  1. 当我进入ssh时,我必须使用sudo编辑这些服务器文件。
  2. 我只能使用亚马逊给我的密钥登录。例如:ssh -i Andrew.pem ec2-user@55.55.44.33
  3. 请帮忙!我不挑剔,只是任何图形文本编辑器,因为使用nano是一个巨大的痛苦。

12 个答案:

答案 0 :(得分:2)

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

scp <local_machine_path_to_file> remoteUser@remoteHostName:<filePath>

答案 1 :(得分:2)

对于远程编辑,这里有 lot 选项:与其他任何选项一样,这个答案肯定会因为更多选项进入该字段而过时。

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

相比之下,如果确实需要sudo,您仍然可以选择:

答案 2 :(得分:0)

  

非常喜欢图形文本编辑器

你不能拥有图形编辑器,你需要像你说的那样使用像nano这样的编辑器,或者使用emacs。当您必须以root身份编辑配置文件时,将需要Sudo。

答案 3 :(得分:0)

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

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

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

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

快乐的SSH&#39; ing;)。

答案 4 :(得分:0)

JSONArray users = response.getJSONArray("statistics");
for (int i = 0; i < users.length(); i++) {
    JSONObject student = users.getJSONObject(i);

    String userName = student.getString("username");
    String score = student.getString("score");

    statistics.append(userName + " " + score + " \n");
}

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

上的视频

答案 7 :(得分:0)

我在AWS上找到了基于GUI的文本编辑器的奇怪解决方法,我使用了Jupyter Notebook。如果您在实例上安装了Anaconda,请执行以下步骤

  • 使用<a routerLink="/othersales"></a> <a routerLink="/prebooking"></a> <router-outlet></router-outlet>
  • 将ssh添加到您的实例上
  • 使用ssh -i <location of your private key> <username>@<public DNS>
  • 在您的实例上启动jupyter notebook
  • 使用jupyter notebook --no-browser --port=8888
  • 打开一个新的终端窗口并ssh到您的jupyter笔记本上
  • 现在您可以在ssh -i <location of your private key> -L 8212:localhost:8888 <username>@<public DNS>
  • 打开jupyter笔记本了

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

答案 8 :(得分:0)

amazon现在获得了Cloud9,这是一个基于浏览器的IDE,可以编辑您的EC2。

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

答案 9 :(得分:0)

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

您可以使用 vi

vi file-name.txt

纳米

nano file-name.txt

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

sudo nano file-name.txt

答案 10 :(得分:0)

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

http://www.jedit.org

它“始终”支持通过 sshConsole 插件对文件进行 sftp 读写。

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

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

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

答案 11 :(得分:-1)

为此,我建议其中一个:

  1. 学习和使用emacs;就textmode编辑而言,它非常强大。

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

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