我是使用 emacs 的初学者。我想通过tramp简化对远程服务器的ssh访问。我的第一个天真试验是录制一个宏。但是,重新启动emacs后调用保存的宏我会收到" byte-code: Args out of range: [], 0
"信息。相反,人们也可以定义环境变量
(setenv "SECRET" "/ssh:user@secret.tld:")
有更好的解决方案吗?我希望有一个定义,我输入M-x connection-name
并设置预定义的ssh-tramp-connection。
答案 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-name
或ssh other
,当您尝试使用Tramp的SSH编辑文件时,您可以键入
/ssh:
然后标签为some-name
或other
完成。如果您使用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。