我应该在文件中添加什么条目.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 安装上运行良好。