ssh配置:覆盖默认用户名

buk*_*zor 247 unix ssh

是否可以配置ssh以了解我的用户名应该是什么?默认情况下,它使用当前用户名,在我的情况下这是不正确的.

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

加分:我家里的用户名是bgolemon.如果我可以配置每个主机的用户名,那将更好.

Lea*_*th2 423

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

Host *
    User buck
Run Code Online (Sandbox Code Playgroud)

或添加

Host example
    HostName example.net
    User buck
Run Code Online (Sandbox Code Playgroud)

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

  • 值得指出的是,根据`man ssh_config`:`由于使用了每个参数的第一个获取值,因此应该在文件开头附近给出更多特定于主机的声明,并且在结尾处一般默认值.所以`Host*`部分可能应该在最后. (125认同)
  • 另外,不要忘记.ssh/config上的chmod 600 (17认同)
  • 值得注意的是,配置文件将以自上而下的方式处理,如果匹配多个Host指令,则填充每个字段(User,HostName ...)和_skipping_重复字段.如果在顶部定义`Host*`,`User jdoe`,然后定义`Host example`,`HostName abc.example.com`,`User root`,则尝试`ssh example`将与你一样进入`ssh jdoe @ abc.example.com`.为了定义ssh默认值(即``root root`),`Host*`指令需要_at配置文件的bottom_. (8认同)

gpo*_*ojd 38

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

ssh buck@hostname
Run Code Online (Sandbox Code Playgroud)

要么

ssh -l buck hostname
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,但我已经熟悉这个了。当它*总是* buck@host 时指定buck@host 似乎是多余的。我正在尝试找到一种方法来在配置文件中表示此信息。 (2认同)
  • 您是否考虑过像 alias sshhostname='ssh Buck@hostname' 这样简单的事情? (2认同)

小智 8

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


nes*_*983 6

man ssh_config

用户

指定要以.登录的用户.当在不同的计算机上使用不同的用户名时,这可能很有用.这省去了必须记住在命令行上提供用户名的麻烦.