【问题标题】:SSH configuration: override the default username [closed]SSH配置:覆盖默认用户名[关闭]
【发布时间】:2012-04-29 03:59:19
【问题描述】:

是否可以配置ssh 来知道我的用户名应该是什么?

默认情况下它使用当前用户名,在我的情况下这是不正确的。

我在借用笔记本电脑,我的用户名是 loaner,但我想告诉 ssh 我的用户名是 buck

奖励积分:我在家里的用户名是 bgolemon。如果我可以为每个主机配置用户名,那就更好了。

【问题讨论】:

标签: unix ssh ssh-config


【解决方案1】:

~/.ssh 内创建一个名为config 的文件。您可以在文件中添加:

Host *
    User buck

或添加

Host example
    HostName example.net
    User buck

第二个示例将设置一个用户名并且是特定于主机名的,而第一个示例只设置一个用户名。而当你使用第二个时,你不需要使用ssh example.netssh example 就够了。

【讨论】:

  • 可能值得指出的是,根据man ssh_config: Since the first obtained value for each parameter is used, more host-specific declarations should be given near the beginning of the file, and general defaults at the end. 所以Host * 部分应该放在最后。
  • 值得注意的是,配置文件将以自上而下的方式处理,填充每个字段(用户,主机名...),如果有多个,则跳过重复字段主机指令匹配。如果在顶部定义Host *User jdoe,然后定义Host exampleHostName abc.example.comUser root,则尝试ssh example 将与输入ssh jdoe@abc.example.com 相同。为了定义 ssh 默认值(即User root),Host * 指令需要位于配置文件的底部
  • 另外,不要忘记 .ssh/config 上的 chmod 600
  • 请注意,如果有多个主机名可供服务器访问(或者如果您希望多个服务器使用相同的默认用户名),则应将第一行更改为 Host server1.local example.net *.example.org 并去掉HostName 行。
【解决方案2】:

如果您只想ssh 几次,例如在借用或共享的计算机上,请尝试:

ssh buck@hostname

ssh -l buck hostname

【讨论】:

  • 谢谢,但我已经对此很熟悉了。当它总是 buck@host 时,指定buck@host 似乎是多余的。我正在尝试找到一种方法来在配置文件中表示此信息。
  • 您考虑过像 alias sshhostname='ssh buck@hostname' 这样简单的事情吗?
  • 是的,我有。 Learath2 的答案正是我想要的。我可以将其签入我的 dotfiles 存储库,而不必再担心它。
  • 我使用别名 root 是因为我连接到不同客户端的机器,我的用户名在每个客户端环境中都不同。我认为另一种方法是使用不同的本地 shell 环境来为每个客户端设置 ssh 和相关设置。或者每个客户端一个虚拟机。
【解决方案3】:

man ssh_config

用户

指定登录用户。当一个 在不同的机器上使用不同的用户名。这节省了 不得不记住在命令行上提供用户名的麻烦。

【讨论】:

  • "Identity" 在这种情况下等同于通常使用的"password"。这是对您进行身份验证的数据,但无助于指定您尝试对谁进行身份验证 as
  • 糟糕。那里还有一个用户设置。
【解决方案4】:

您可以使用快捷方式。在您的主目录中创建一个 .bashrc 文件。在那里,您可以添加以下内容:

alias sshb="ssh buck@host"

要使别名在终端中可用,您可以关闭并打开终端,或运行

source ~/.bashrc

然后您只需输入以下内容即可连接:

sshb

【讨论】:

  • 这对于一个特定的主机来说非常有用,但是当我不断连接到一万亿个不同的服务器时,这毫无用处。而是使用适当的设置设置.ssh/config。我来寻找* wildcare(并得知它应该在底部)。
【解决方案5】:

有一个 Ruby gem 可以连接您的 ssh 配置文件,称为 sshez

您只需sshez <alias> username@example.com -p <port-number>,然后您就可以使用ssh <alias> 进行连接。它也很有用,因为您可以使用 sshez list 列出您的别名,并且可以使用 sshez remove alias 轻松删除它们。

【讨论】:

    【解决方案6】:

    如果您对特定变量(即 User 或 IdentityFile)有多个引用,ssh 配置文件中的第一个条目总是优先,如果您想要特定的内容,则将其放在第一个,任何通用的它在底部。

    【讨论】:

      猜你喜欢
      • 2021-04-11
      • 2020-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多