admin管理员组

文章数量:1546778

文章内所有的命令都在power shell内执行,使用右键单击Windows徽标,选择终端管理员即可打开

Windows下OpenSSH的安装

打开Windows power shell,检查SSH服务的安装状态。会返回SSH客户端和服务器的安装状态,一下是两个都安装成功的截图

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

如果没有安装,使用以下命令来安装

# 安装 OpenSSH 客户端
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# 安装 OpenSSH 服务器
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

SSH服务配置

安装完成之后,我们需要先配置一下服务的自启动

Set-Service -Name sshd -StartupType 'Automatic'

然后启动SSH服务器

Start-Service sshd

接着还需要确保22端口被SSH监听,同时防火墙允许连接

netstat -an | findstr /i ":22"

Get-NetFirewallRule -Name *OpenSSH-Server* | select Name, DisplayName, Description, Enabled

# 若安装时未添加防火墙规则
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

密钥配置

SSH使用密钥登录更为方便和安全,我们使用需要连接到这台Windows的设备生成密钥,然后将id_ras.pub中的内容存储到"C:\Users\你的用户名\.ssh\authorized_keys",如果不存在authorized_keys则直接新建一个,然后使用以下命令升级权限

icacls.exe "C:\Users\你的用户名\.ssh\authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"

接着还需要修改"C:\ProgramData\ssh\sshd_config",做以下的修改,修改的内容需要管理员权限才能保存

# 允许密钥登录和密钥存储位置,这两条不能被注释
PubkeyAuthentication yes
AuthorizedKeysFile	.ssh/authorized_keys

# 这是默认密钥文件的存储位置,可以注释掉
# Match Group administrators
#        AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

SSH登录后默认使用power shell

一般情况下远程登录设备之后用的是默认Windows shell cmd,不是很好用,我们可以更换为power shell

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

重启SSH

最终一切配置妥当后我们重启SSH服务

Start-Service sshd

本文标签: 密钥WindowsSSHpowershell