一旦在 Windows 7 上安装并运行 openSSH/Cygwin,您用来 ssh 进入 Windows 7 的任何用户似乎都拥有普通用户权限。也就是说,即使用户是管理员,也无法执行特权命令。
Cygwin SSH 用户是否有办法获取提升的用户权限?(例如“sudo”)或者这是 Cygwin 目前的局限性?(例如 Cygwin 的 ping)
相关技术信息:
- Windows 7(64 位)家庭高级版
- Cygwin 1.7.x
答案1
如果您使用密码身份验证登录 sshd,那么您将同时向 Windows 进行身份验证,并且应该被授予您帐户的管理权限。如果您使用公钥身份验证登录,那么 sshd 将绕过 Windows 身份验证,您将只拥有标准用户权限。
有关详细信息,请参阅For more information, seeCorinna 对此问题的回答从 2004 年开始。另请参阅 Cygwin 邮件列表中关于ssh 上的管理员权限。
答案2
这篇文章已经很旧了,但我仍然会给出答案,因为最近我遇到了这个问题并看到了这篇文章,这可能对某些人有用。
正如 Andrew Schulman 所回答的,您需要使用用户/密码登录才能获得完整的 Windows 帐户权限(例如:如果用户拥有管理员权限,则授予管理员权限)。但是,如果您出于安全原因仍想使用公钥身份验证(比独立密码身份验证更安全),以下方法可以解决此问题:
由于 ssh 支持使用多个依次链接的身份验证方法(https://security.stackexchange.com/questions/17931/possible-to-use-both-private-key-and-password-authentication-for-ssh-login)您可以同时启用公钥认证和密码认证:
公钥认证的目的是提高安全性。
密码验证的目的是通过向 sshd 服务提供用户/密码来“强制”其创建具有您的全部权限的 Windows 会话。
为了实现此功能,您需要在安装了 cygwin 的服务器上的 sshd_config 文件中配置以下设置:
AuthenticationMethods "publickey,password"
请注意,您还需要启用以下功能:
PasswordAuthentication yes
PubkeyAuthentication yes
配置文件更改和 sshd 服务重启后,您将需要私钥并输入用户密码才能从客户端使用 ssh 登录。您将获得指定帐户的完整 Windows 权限。
小小的不便之处在于,除了私钥之外,每次您想要使用 ssh 登录时,您都需要指定用户密码,但我认为这仍然很好,因为它具有更好的安全性,并且能够拥有 Windows 帐户的全部权限。