【发布时间】:2021-02-03 15:29:36
【问题描述】:
当我尝试 ssh [IP] 时,openssh 警告 Could not create directory '/home/local/[my username]/.ssh'。
我确实有一个.ssh 目录,在另一个路径中,在我的实际主目录中,/home/[myusername]/.ssh。
为什么 openssh 会在该主路径中添加 local?这条路不存在。我在 Ubuntu 16.04 上,我的 $HOME 设置正确,即 /home/[my username]。
我找不到将 openssh 配置为什至查找该“本地”路径的位置。我在/etc/ssh/ 下搜索了local,但没有返回任何内容。
更新:
getent passwd $USER 显示错误的主路径,路径中包含“本地”。显然 openssh 使用主路径作为该命令的输出,而不是 $HOME 环境变量来查找主目录。我不能只编辑/etc/passwd,因为 $USER 来自 LDAP。不确定我的 IT 部门是否可以在 LDAP 中编辑我的主路径,有没有办法告诉 openssh 使用哪个主路径,即 $HOME 不是 getent passwd $USER?
【问题讨论】:
-
如果
getent passwd $USER显示您的主目录不存在,则您的系统配置有问题。您需要与系统管理员讨论如何修复它,方法是修复 LDAP 数据,或者创建/home/local/username作为指向实际主目录的符号链接。 ssh 假设系统的用户信息正确是合理的;如果它没有查看$HOME,则可能没有解决方法。此外,这不是一个真正的编程问题。 Server Fault 可能会更好。 -
我联系了我的 IT 部门。他们更新了我在 LDAP 中的主目录,在我的本地机器重新启动后,openssh 可以工作了。
-
@mipnw 干得好。我已经编辑了答案以说明 LDAP 管理的 SSH 访问。