我正在尝试在运行 Cygwin 的 WinXP 桌面和 Mac 笔记本电脑之间使用 SSH 身份验证,但无论如何,我都无法让它工作。我的公钥在 macbook 的 authorized_keys 目录中,我的私钥也在那里,一切都在我的 ~/.ssh 文件夹中。
以下是运行 ssh -vv user@server 的相关行
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Trying private key: /c/cygwin/home/beerhalj/.ssh/identity
debug1: Trying private key: /c/cygwin/home/beerhalj/.ssh/id_rsa
debug1: Trying private key: /c/cygwin/home/beerhalj/.ssh/id_dsa
debug1: read PEM private key done: type DSA
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,keyboard-interactive
debug2: we did not send a packet, disable method
看起来我的服务器发送了一个公钥数据包,然后没有发送数据包并禁用。为什么?或者,我应该尝试哪些可能的方法?任何帮助或建议都将不胜感激。
根据 SparX 的建议,我检查了 sshd_config,发现只有三行非注释行
Protocol 2
SyslogFacility AUTHPRIV
Subsystem sftp/usr/libexec/sftp-server
答案1
确保除了您自己之外,其他人都无法写入 authorized_keys 文件以及 .ssh 文件夹和您的主文件夹。否则,Sshd 会忽略它。
答案2
我想添加一个后续答案,以便将来记住。几年前,这可能仍然如此,仍然不存在 NT/AD 样式权限与 Unix 权限的完美映射。我记得遇到一个问题,如果我的 .ssh 文件驻留在网络驱动器上,并且在 cygwin 下使用,权限不能在文件上正确设置,因为权限模型不允许这样做。
这可能会让你感到困扰,让你困惑几个小时。不过,我猜你目前的情况是你的文件位于本地驱动器上,这不会对你造成影响。