SSH 连接到本地主机时主目录名称为空

SSH 连接到本地主机时主目录名称为空

我正在尝试启动一个系统(Hadoop,但这对这个问题来说并不重要),并且需要能够 ssh 到 localhost。我在 windows 上使用 cygwin 执行此操作。cygwin SSHD 服务正在运行,并且 ssh localhost 可以正常工作(ssh username@localhost 也可以正常工作)。但是,当我这样做时,它显示:

Could not chdir to home directory : No such file or directory
mkdir: cannot create directory `': No such file or directory
  could not be created.
Setting HOME to /tmp.

它以某种方式尝试将目录切换至名称为空的目录,但失败了。但是,我不明白它为什么要这样做。/home/username 文件夹按应有的方式存在,并且可以通过 ssh 登录后访问。

有没有关于 ssh 从哪里获取空文件夹名称的指针?(可能是我不知道的一些配置?)。

提前致谢!

答案1

您的用户有主目录吗?您可以通过echo $HOME和进行检查grep user /etc/passwd,前者回显用户的目录,而 grep 查找存储在密码文件中的主目录。

如果事实证明您的用户没有Home设置目录passwd,则执行usermod -d /some/directory user将强制更改,然后用户将登录该目录。

还要注意,由于您的原始主目录设置为/tmp,可能有一些用户设置文件需要转移到新目录(例如.ssh)。

相关内容