SSH配置:覆盖默认用户名

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

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

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

额外提示:我在家里的用户名是bgolemon。如果我可以配置每个主机的用户名,那就更好了。

213749 次浏览

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

Host *
User buck

或添加

Host example
HostName example.net
User buck

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

man ssh_config

用户

指定登录的用户。当a 不同的机器使用不同的用户名。这将保存 必须记住在命令行上给出用户名的麻烦

如果你只想ssh几次,比如在一台借来的或共享的计算机上,尝试:

ssh buck@hostname

ssh -l buck hostname

有一个Ruby宝石接口你的ssh配置文件,称为sshez

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

你可以走捷径。在主目录中创建一个.bashrc文件。在那里,你可以添加以下内容:

alias sshb="ssh buck@host"

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

source ~/.bashrc

然后你只需输入:

sshb

如果你有多个对特定变量的引用,如User或IdentityFile, SSH配置文件的第一个条目始终优先,如果你想要特定的东西,那么把它放在前面,任何通用的东西把它放在底部。