如何拥有默认用户和主机特定用户

如何拥有默认用户和主机特定用户

我应该在文件中添加什么条目.bashrc,以便指定用于建立 SSH 连接的默认用户?例如,如果我希望它是 root 并希望通过 SSH 连接到 x,如果我输入ssh x,它应该默认为 的连接ssh root@x

默认情况下,Linux 似乎默认使用您以何种用户身份登录。例如,如果我以“peter”身份登录,则输入ssh x将导致连接ssh peter@x

请记住,有时我仍然想覆盖默认值,因此请执行以下操作

alias ssh='ssh root@'

并不是最理想的解决方案。

答案1

比在 bashrc 中放置别名更好的解决方案是使用 ssh 配置文件

cat ~/.ssh/config

HOST *  
     USER root

您还可以指定特定子域使用特定用户。如果您的笔记本电脑在网络之间移动,这很有用。

HOST 192.168.*.*
     USER homeuser

HOST 10.2.*.*
     USER workuser

您甚至可以通过域进行配置,并对不同的域使用不同的 ssh 密钥。

HOST *.microsoft.com
     USER bill
     IdentityFile ~/.ssh/microsoft/id_rsa

HOST *.apple.com
     USER steve
     IdentityFile ~/.ssh/apple/id_rsa

您还可以添加适用于多个主机的部分,例如

HOST rasbpi1 rasbpi2 rasbpi3
    USER pi

man ssh_config通过执行或了解有关格式的更多信息这里

答案2

如何拥有默认用户和主机特定用户

要明确的是,如果你同时想要默认用户和特定于主机的用户,您需要使用Host *,并将其放在配置文件的底部:

~/.ssh/config

#
# Aliases
#

Host dev
    Hostname dev.example.com

Host mac
    Hostname mac.local


#
# Host-specific users
#

Host dev dev.example.com
    User root

Host mac mac.local
    User me


#
# Default user
#

Host *
    User app

参考

答案3

您可以使用 -l 选项为 ssh 创建别名,因此:

别名 ssh='ssh -l 默认用户'

-l 选项提供了登录用户,但有趣的是,主机信息之前给出的用户(如果有)会覆盖此信息。因此,如果你开始

ssh 主机

设置上述别名后,它将以默认用户身份登录,而如果你启动

ssh 新用户@主机

无论如何都会从“-l”选项中获取新用户而不是默认用户

这至少在标准 Linux 发行版附带的几个 OpenSSH 安装上运行良好。

相关内容