![有没有办法将您的 ssh 用户默认为除当前登录用户名之外的其他用户?](https://linux22.com/image/865902/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E5%B0%86%E6%82%A8%E7%9A%84%20ssh%20%E7%94%A8%E6%88%B7%E9%BB%98%E8%AE%A4%E4%B8%BA%E9%99%A4%E5%BD%93%E5%89%8D%E7%99%BB%E5%BD%95%E7%94%A8%E6%88%B7%E5%90%8D%E4%B9%8B%E5%A4%96%E7%9A%84%E5%85%B6%E4%BB%96%E7%94%A8%E6%88%B7%EF%BC%9F.png)
我在家里使用虚拟机进行工作。我的工作包括每天通过 ssh 连接到几台计算机以处理各种事情……使用符号ssh user@server
很容易,但我在编写一些脚本时遇到了一些问题。当我的脚本运行时,它会尝试使用我当前的用户而不是与我工作中的 LDAP 帐户关联的用户 ssh 连接到计算机(因此无法识别我的私钥)。更具体地说,我在家里的用户是caleb
,而我在工作中的用户是ctote
。
有没有办法修改我的.bashrc
或配置以强制在尝试连接时.ssh
始终使用 ssh ?ctote
答案1
~/.ssh/config
是的,使用 SSH 客户端配置。最简单的方法是使用以下两行创建本地用户配置:
Host *
User ctote
这将匹配所有主机并将登录名应用于ctote
它。
要对您经常连接的单个主机应用/覆盖它,例如使用:
Host myhost
User myusername
Hostname server01.subdomain01.longnamehuh.tld
Port 2222
使
ssh [email protected] -p2222
进入
ssh myhost
奖励:也适用于 sftp/scp/git 等。您还可以像这个用例一样施展魔法:如何使用一个命令通过 B SSH 连接到机器 A?。
查看 SSH 客户端配置的手册页,了解您可以指定的更多选项以及确切的语法。
man ssh_config
答案2
当然,您可以创建一个~/.ssh/config
文件,并在其中:
Host laptop
User another-user
您可以通过像这样的主机匹配选项指定大多数 SSH 选项。