我正在尝试启动一个系统(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
)。