【发布时间】:2023-04-06 16:44:01
【问题描述】:
我认为这应该是一个非常基本的问题,但谷歌搜索只发现了这里 [1] 上的另一个问题,这没有帮助。
我有一个相当广泛的 ssh 配置。我如何让 TRAMP 尊重它?大多数事情都是开箱即用的,除了用户名,TRAMP 会提示我每台服务器。我希望 TRAMP 停止提示我,只使用我的 ssh 配置中的“用户”条目。有这个设置吗?
编辑:TRAMP 仅在配置使用规范化时提示。也就是说,以下 ssh 配置有效:
Host foo
HostName foo.example.com
User BettaGeorge
但是,以下内容会提示我输入用户名:
CanonicalDomains example.com
CanonicalizeHostname yes
Host *.example.com
User BettaGeorge
为每个主机设置用户名(不带通配符)不是一种选择,因为我管理着一个大型集群,其中偶尔存在短暂的虚拟机。
我已经确认tramp-default-user-alist 是nil 发生这种情况。
我在 linux 上的 emacs 版本是 27.2,我的 TRAMP 版本是 2.4.5.27.2。
【问题讨论】:
-
检查您的
tramp-default-user-alist是否存在冲突条目。 FWIW,我无法重现您的问题。使用像 Michael Albinus 在他的回答中显示的条目(并且在tramp-default-user-alist中没有冲突条目),我可以在没有提示和scp、ssh、sshx协议中的任何一个的情况下访问远程主机。跨度> -
确实,你是对的。我可以让它与最小的 ssh 配置一起工作。但是,只要我添加主机名规范化,TRAMP 就会失败。我已经编辑了我的问题以提供示例。