![默认 SSH 用户名与 macOS 中的 $USER 值不匹配](https://linux22.com/image/1580447/%E9%BB%98%E8%AE%A4%20SSH%20%E7%94%A8%E6%88%B7%E5%90%8D%E4%B8%8E%20macOS%20%E4%B8%AD%E7%9A%84%20%24USER%20%E5%80%BC%E4%B8%8D%E5%8C%B9%E9%85%8D.png)
笔记:我设法让它工作了,现在我正试图弄清楚为什么会出现差异。
我最近在运行 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
)