Linux上的默认SSH用户


14

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

默认情况下,Linux似乎默认为您以哪个用户身份登录。即,如果我以“ peter”身份登录,则键入ssh x将导致的连接ssh peter@x

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

alias ssh='ssh root@'

不是最理想的解决方案。

Answers:


34

与将别名放入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

1
请注意,在ssh扫描配置文件时,它将使用找到的第一个匹配项,因此将最不匹配的匹配项放在文件底部。
mwfearnley

0

您可以使用-l选项为ssh做一个别名,因此:

别名ssh ='ssh -l defaultuser'

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

SSH主机

设置完上面的别名后,它将以defaultuser身份登录,如果您启动

ssh newuser @ host

无论如何都会从“ -l”选项中获取newuser而不是defaultuser

至少在一些标准Linux发行版附带的OpenSSH安装中可以使用。


到目前为止,使用〜/ .ssh / config文件是首选方法,因为这可能会带来意想不到的副作用。
dovetalk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.