ssh 进入 windows 10 powershell 但没有获得管理员权限

ssh 进入 windows 10 powershell 但没有获得管理员权限

对于 ssh,我习惯使用 unix 系统。我有“sudo”权限,但当我 ssh 进入我的帐户时,我不是管理员,我只是一个普通用户。要执行任何管理员操作,我必须“sudo”

本地也是一样。我打开一个终端,我不是管理员。我只是一个普通用户。

即使在 Windows 10 中启动 powershell,我也没有管理员权限。要获取管理员权限,我必须专门打开并管理 powershell。默认没有管理员权限。

我最近设置在 Windows 10 上使用 powershell 进行 ssh但是当我 ssh 进入 shell 时它说有管理员权限

(New-Object Security.Principal.WindowsPrincipal(
  [Security.Principal.WindowsIdentity]::GetCurrent())
).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
True

我怎样才能让它的行为与我在本地启动 powershell 时一样,在没有管理员权限的情况下启动它?

如果在我的桌面上不清楚,我会打开命令提示符并输入pwsh,我不是管理员

Microsoft Windows [Version 10.0.18363.900]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\gregg>pwsh
PowerShell 7.0.1
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

Loading personal and system profiles took 620ms.
❯ (New-Object Security.Principal.WindowsPrincipal(
>>   [Security.Principal.WindowsIdentity]::GetCurrent())
>> ).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
False

再次执行此操作,除了 ssh 到 localhost,但不知何故我是管理员

Microsoft Windows [Version 10.0.18363.900]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\gregg>ssh localhost
gregg@localhost's password:
PowerShell 7.0.1
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

Loading personal and system profiles took 620ms.
❯ (New-Object Security.Principal.WindowsPrincipal(
>>   [Security.Principal.WindowsIdentity]::GetCurrent())
>> ).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
True

这两个命令pwsh应该ssh localhost以相同的情况结束,但事实并非如此。如何修复ssh localhost它的行为与pwsh

PS:我发现 powershell 似乎没有“sudo”类型的命令,也没有提升权限的方法。这不是我的问题。我的问题是,当我在本地启动 powershell 时,我不是管理员。当我通过 ssh 启动它时,如何让它表现得一样

附加问题:如果有关于如何以管理员组中的用户身份通过​​ ssh 进入 powershell 但没有 powershell 管理员权限的答案,那么通过 ssh 选择启动具有管理员权限的 powershell 的过程是什么?(标志等......)

答案1

Windows 在没有管理员权限/提升权限的情况下启动桌面的方式(即使您的用户帐户属于管理员组并且应该具有这些权限),是联合航空

sshd 服务中需要内置一些功能,以运行创建低权限标准访问令牌的相同逻辑,而不是使用默认管理令牌启动 shell 进程。

在里面Windows sshd 文档这是我能找到的最相关的语言:

请注意,如果用户属于管理员组,则使用 %programdata%/ssh/administrators_authorized_keys。

所以看起来该功能目前还不存在。但如果你创建了功能请求,我会 +1!


我能想到的其他解决方案是“使用不同的用户”或“以非提升的权限运行不同的 ssh 服务器”:(

如果您创建不属于管理员组的其他 Windows 用户帐户并通过 SSH 连接到该用户,则不会提升您的权限。但这可能没什么用...

如果你以非提升权限的方式启动了 ssh 服务器,它产生的 shell 进程也将是非提升权限的。你可以尝试从 WSL 安装 sshd?我还没有尝试过,所以不知道它是否有用。

我也想过PowerShell 远程处理但在我的测试中,它总是启动一个提升的 shell,与 SSH 相同。

相关内容