47

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

4

3 回答 3

47

没有相当于 的 TRAMP ssh user@host -i private-key.pem。但是,如果您运行 shell 命令ssh-add private-key.pem,则 ssh(以及 TRAMP)将自动private-key.pem用于身份验证。只需ssh user@host在 shell 上工作,打开文件/user@host:~/filename.txt将在 emacs 中工作,而不会提示输入密码。

于 2012-04-27T17:23:48.067 回答
31

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

Host remotehost
    User     mylogin
    Port     22
    Hostname remotehost.fqdn

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

于 2012-05-24T13:17:30.863 回答
1

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

我让您阅读腻子主页如何配置选美以添加您的密钥。

也有使用配置文件名称的 plinkx 方法,因此当您执行以下操作时:

C-x C-f /putty_profile:

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

如果您使用的是 Linux,通常现代发行版应该具有 gnome 密钥环(也称为 seahorse),并以全局 SSH 代理启动 X。我的 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 会话。

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

于 2009-08-31T05:18:54.877 回答