远程登录 Windows 10 的 Powershell
安装 OpenSSH
一般 Windows 会默认安装 OpenSSH,如果没有,管理员身份启动 PowerShell,执行以下操作:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
# 上面这条命令可能会返回这样的结果:
Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
# 根据上面的结果,我们得到了服务端和客户端的名字, 现在用下面两条命令分别安装客户端和服务端:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
# 两条命令应该会返回这样的结果:
Path :
Online : True
RestartNeeded : False
SSH 服务器的初始配置
管理员身份启动 PowerShell,执行以下指令:
# 先启动 sshd
Start-Service sshd
# 这条命令是可选,但是推荐的,可以让 sshd 自动启动:
Set-Service -Name sshd -StartupType 'Automatic'
# 接下来确认一下防火墙规则,允许ssh通过上面的安装步骤应该已经自动创建了,不过保险起见,还是要查一下:
Get-NetFirewallRule -Name *ssh*
# 这里应该会返回一个防火墙规则,名字叫 "OpenSSH-Server-In-TCP", 他应该被启用
# 如果上述防火墙规则不存在,用下面的命令创建一条:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
权限设置
AuthorizedKeysFile
默认值为用户主目录下的 .ssh/authorized_keys .ssh/authorized_keys2
SyslogFacility
日志在 %programdata%\ssh\logs
下
为 Win10 的 OpenSSH 配置默认 shell:
Windows 初始默认 Shell 是 cmd,Windows 还包括了 PowerShell 和 Bash。
先确认 OpenSSH 安装文件夹位于系统路径上,对于 windows,默认安装位置是:C:Windows\System32\openssh
。
cmd 中 path
和 PowerShell 中 $env:path
可以显示当前路径。
在注册表中,将 PowerShell 的完整路径添加到 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH
中的 DefaultShell
字符串值中。
先确保注册表中存在 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH
这个路径,然后可以在 PowerShell 中用以下命令将默认 shell 设为 PowerShell:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
登录
确保在同一网络下,在你的 Termux 中就可以登录 Win10 的 PowerShell 了:
ssh username@your_pc_host -p 22
你可以用密码或密钥的方式登录。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于