默认 SSH 用户名与 macOS 中的 $USER 值不匹配

默认 SSH 用户名与 macOS 中的 $USER 值不匹配

笔记:我设法让它工作了,现在我正试图弄清楚为什么会出现差异。

我最近在运行 macOS High Sierra 的笔记本电脑上启用了远程访问。但是,我最初无法通过 ssh 登录。当我运行时,ssh localhost它会提示我输入密码,但总是被拒绝。当我运行时,ssh ${USER}@localhost我的 SSH 密钥生效了,我立即登录了。

调高详细程度后,我注意到正在ssh localhost尝试以 的身份进行身份验证firstname.lastname,但我的用户帐户和$USER变量是firstnamelastname(没有点)。这解释了为什么ssh ${USER}@localhost有效而另一个无效。

那么到底是怎么回事?为什么 ssh 尝试使用除 之外的其他方式进行身份验证$USER?它从哪里获得带点的形式?

答案1

如果ssh localhost使用的用户名与 ssh 配置文件中的用户名不同,$USER可能会有一行覆盖该用户。

办理登机手续~/.ssh/config/etc/ssh/ssh_config


您还可以尝试在文件中添加以下行~/.ssh/config(如果文件不存在则创建该文件):

User firstnamelastname

然后,重新启动ssh

sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

并使用详细模式再次检查您的 ssh 默认用户名:

ssh -v localhost

你应该看到如下一行:

debug1: Authenticating to localhost:22 as 'firstnamelastname'

(也就是说,您在中定义的那个~/.ssh/config

相关内容