我有一台装有 Windows 8 的笔记本电脑。我正在尝试通过 Cygwin64 设置从这台笔记本电脑到 Windows 2012 服务器的 SSH。
我按照描述的步骤操作这里。
但是,当我执行步骤:时ssh-user-config
,出现错误:
ERROR: There is no home directory set for you in /etc/passwd.<br>
ERROR: Setting $HOME is not sufficient!
在我的 Cygwin64 安装文件夹中,我看到一个目录 home ,其中的用户是从我登录的 Windows 用户复制的(假设这个用户很漂亮)。
我还看到一个文件cygwin64/etc/passwd
- 但在该文件中我的 Windows 用户(nifty)不存在。
我看到的唯一一行是:
[computername]+sshd:*:197610:197121:[computername]\sshd,S-1-5-21-1837826546-2281981055-3577963604-1002:/var/empty:/bin/false
我尝试手动添加 passwd 文件,插入:
nifty:*:1:1:/home/nifty:/bin/bash/
我还尝试添加:
[computername]++sshd:*:1:1::/home/swuyts:/bin/bash
当谷歌搜索时,我唯一想到的就是尝试运行这个命令:
mkpasswd -l -u >> /etc/passwd
我注意到这会添加 Windows 中存在的一些帐户(例如管理员组、系统帐户和上面步骤中创建的 cyg_server),但它并不能帮助我执行 ssh-user-config。
有人可以解释一下如何继续吗?
答案1
这是一个暂时的问题。该ssh-user-config
脚本需要修复。
您的“How To Geek”教程与您的体验不符的原因是,最新版本的 Cygwin (1.7.34)在默认安装中取消了/etc/passwd
和。/etc/group
正如您最终发现的那样,可以重新创建它们,但如果它们不存在,Cygwin DLL 将使用 Windows 本机用户/组数据库:广告如果存在,或萨姆如果不。
该脚本做出了一个过时的假设,即它只能运行/etc/passwd
through的内容awk
来回答问题。
Cygwin 最近得到了一个新程序,其工作方式与 Linux 上的程序类似,抽象了文件、AD 和 SAMgetent(1)
之间的差异。/etc
该脚本只需要补丁即可使用此工具,而不是解析/etc
文件。
正如我们在 Cygwin 邮件列表中所说,正温度系数!
答案2
请尝试重新运行setup.exe
以更新到openssh-6.7p1-2
.这应该可以解决你的问题。
此外,问题的根源(setup.exe
第一次安装软件包时选择“上一个”版本而不是当前版本)已得到解决。