【问题标题】:Editing remote files with Emacs using public key authentication使用 Emacs 使用公钥身份验证编辑远程文件
【发布时间】:2010-11-24 02:37:03
【问题描述】:

当我可以通过带有公钥身份验证的 SSH 访问远程主机时,如何使用本地 Emacs 编辑远程主机上的文件? Tramp 可以很好地处理正常的密码登录,但我不知道如何使用密钥对。我在两端都使用 unix/linux。

【问题讨论】:

  • 我使用 TRAMP 和公钥认证。您能否详细说明一下出了什么问题(以及您使用的是什么版本的 Emacs)?我认为 TRAMP 几乎只是调用 SSH,所以我首先确保“ssh yourname@yourhost”在使用公钥登录时按预期工作。
  • 谢谢,您的查询将我引导到正确的轨道,我解决了问题(学会了更正确地使用 SSH)。但是,当您的 SSH 身份文件位于非标准位置时,我仍然想知道如何使用 Tramp,因此您需要使用 SSH 的“-i”命令行选项。
  • 您可以使用 ssh-add 添加身份文件。

标签: emacs ssh tramp


【解决方案1】:

如果您在 Windows 上,您可以轻松地使用 plink 和 tramp。您必须确保 plink 二进制文件在您的路径中,并且必须将变量 (M-x customize-option) tramp-default-method 自定义为 plink,它与 pageant 结合可以得到您想要的。

我让你看腻子主页如何配置选美来添加你的密钥。

还有一个方法 plinkx 使用配置文件名称,所以当您执行以下操作时:

C-x C-f /putty_profile:

它将从您保存的 putty 配置文件名称中获取 putty_profile。

如果您使用的是 Linux,通常现代发行版应该有 gnome 密钥环(也称为 seahorse),以 X 开头并带有全局 SSH 代理。我的 debian 发行版示例:

chmouel@lutece:~$ ps aux|grep ssh-agent
chmouel   2917  0.0  0.0   4904   552 ?        Ss   Aug30   0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/seahorse-agent --execute x-session-manager

如果您执行 ssh-add(确保您在 ~/.ssh 中正确配置了身份),它应该要求您输入密码并识别您的所有 X 会话。

如果没有发生,您的发行版中的其他地方可能有问题。

【讨论】:

    【解决方案2】:

    没有与ssh user@host -i private-key.pem 等效的 TRAMP。但是,如果您运行 shell 命令 ssh-add private-key.pem,那么 ssh(以及 TRAMP)将自动使用 private-key.pem 进行身份验证。只需 ssh user@host 即可在 shell 上运行,打开文件 /user@host:~/filename.txt 将在 emacs 中运行,无需提示输入密码。

    【讨论】:

    • 如果您使用~/.ssh/config 文件来管理您的密钥,请参阅@Sebastien 的答案。
    • 为什么后缀为.pem,不是私钥明文ascii(如id_rsa)?
    【解决方案3】:

    我不明白你的问题,因为 Tramp 与公钥认证的 SSH 连接完美配合。 例如,假设您在~/.ssh/config 中设置了以下配置:

    Host remotehost
        User     mylogin
        Port     22
        Hostname remotehost.fqdn
    

    假设您可以在终端中正确运行ssh remotehost,那么您可以使用 TRAMP C-x C-f /remotehost:path/to/file 打开远程文件

    【讨论】:

    • 这是一个很好的答案,只需要添加IdentityFile ~/.ssh/identity-file
    • 在 Emacs 26.01 中,我必须执行 tram C-x C-f /ssh:mylogin@remotehost:/ 它运行良好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 2013-10-08
    • 2011-01-14
    • 1970-01-01
    • 2012-05-16
    • 2015-10-20
    相关资源
    最近更新 更多