在emacs中自动进行远程访问

时间:2014-06-25 18:53:37

标签: emacs tramp

我是使用 emacs 的初学者。我想通过tramp简化对远程服务器的ssh访问。我的第一个天真试验是录制一个宏。但是,重新启动emacs后调用保存的宏我会收到" byte-code: Args out of range: [], 0"信息。相反,人们也可以定义环境变量

(setenv "SECRET" "/ssh:user@secret.tld:")

有更好的解决方案吗?我希望有一个定义,我输入M-x connection-name并设置预定义的ssh-tramp-connection。

1 个答案:

答案 0 :(得分:4)

最简单的解决方案可能是在~/.ssh/config中配置您想要的每个主机,例如

Host some-name               # The friendly name of this host
HostName real-host.name.tld  # The host to connect to
User foo                     # The user to connect as

Host other
HostName 123.45.67.89
User bar

这样做的好处是,您现在可以在命令行上ssh some-namessh other,当您尝试使用Tramp的SSH编辑文件时,您可以键入

/ssh:

然后标签为some-nameother完成。如果您使用ido,则会在没有标签完成的情况下自动提示您。

many other options that can be used in your ~/.ssh/config file,例如设置默认隧道和调整身份验证模式。

如果Tab键完成时Tramp没有正确响应,set the completion function for SSH like this(这应该是默认值):

(tramp-set-completion-function "ssh"
 '((tramp-parse-sconfig "/etc/ssh_config")
   (tramp-parse-sconfig "~/.ssh/config")))

最后,如果您不想提示输入密码,建议您使用SSH key-based authentication