为啥连接 Cygwin 的 OpenSSH 服务器的用户名是 <hostname>+<username> 格式?
Posted
技术标签:
【中文标题】为啥连接 Cygwin 的 OpenSSH 服务器的用户名是 <hostname>+<username> 格式?【英文标题】:Why is username to connect Cygwin's OpenSSH Server is <hostname>+<username> format?为什么连接 Cygwin 的 OpenSSH 服务器的用户名是 <hostname>+<username> 格式? 【发布时间】:2020-04-28 10:17:36 【问题描述】:目标
我的目标是使用 windows 帐户用户名打开 OpenSSH 连接。我有一台带有cygwin的Win10 PC。我有一台装有 Cygwin 的 OpenSSH 的 PC。
现状
目前,我可以通过以下命令从我的 mac 建立与 PC 的 OpenSSH 连接:
ssh mypc+user1@mypc
注意 mypc=pc 的计算机名,user1=window 的用户帐户名
但如果我执行以下操作,则无法建立连接。
ssh user1@mypc
因此,我看到此错误 Permission denied (publickey,keyboard-interactive)
我对 Windows 的原生 OpenSSH 有一些经验,但我可以简单地使用 user1@mypc 来建立连接。但是对于 cygwin,我必须使用“mypc+user1@mypc”才能使其工作至今。
问题
为什么在 Cygwin 中我必须使用这种主机名+用户名格式? 可以通过配置文件将其更改为更熟悉的仅用户名格式吗?
【问题讨论】:
【参考方案1】:Cygwin 程序使用+
而不是\
字符将权限名称与帐户名称分开。 Cygwin的账号命名规则如下:
知名和内置帐户将在 Windows 中命名,没有权限名称。示例:Administrators
或 SYSTEM
如果计算机不是域成员,则不使用权限名称。示例:Administrator
(不是COMPUTERNAME+Administrator
)
如果计算机是域成员,则使用计算机域中的帐户而无需授权名称。示例:kendyer
(不是DOMAIN1+kendyer
)
来自其他域的帐户使用域名作为权限名称。示例:DOMAIN2+lynndyer
域成员计算机的本地计算机帐户使用计算机名称作为权限。示例:COMPUTERNAME+localuser
详情请见https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-mapping。
【讨论】:
以上是关于为啥连接 Cygwin 的 OpenSSH 服务器的用户名是 <hostname>+<username> 格式?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Cygwin在Windows上运行OpenSSH SSHD服务器