admin管理员组文章数量:1130349
网上很多资料都是windows宿主机通过ssh连接到ubuntu虚拟机,那么这篇文章实现一下ubuntu虚拟机通过ssh连接windows宿主机,这样ubuntu和windows之间也可以很方便的使用scp命令互相传输文件。
当然,ubuntu不是虚拟机也行,只要配置好windows服务端,都可以通过ssh远程连接到windows。你甚至可以用ipad通过ssh连接到windows。
建议读者先阅读国外的资料(中文博客的质量实在是一言难尽),参考:
-
如何从 Linux 或 Windows 或任何地方通过 SSH 连接到 Windows 10 机器
-
使用公钥身份验证,为 Windows 设置 OpenSSH
1. 安装SSH sever
打开PowerShell。如果Windows没有ssh的server服务,首先安装一下。
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
$ Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Name : OpenSSH.Client~~~~0.0.1.0
State : Installed
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
$ Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Path :
Online : True
RestartNeeded : False
$ Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Name : OpenSSH.Client~~~~0.0.1.0
State : Installed
Name : OpenSSH.Server~~~~0.0.1.0
State : Installed
启动server:
Start-Service sshd
#Get-Service sshd 查看是否启动
(可选)设置为自启动:
Set-Service -Name sshd -StartupType 'Automatic'
2022.11.15 更新
(可选)设置ssh进入的默认终端为PowerShell(添加注册表项):
此处一定要慎重,不要轻易更改注册表,除非你知道自己在做什么。
通过Get-Command pwsh查看pwsh.exe的路径:
Get-Command pwsh
# 结果显示:
CommandType Name Version Source
----------- ---- ------- ------
Application pwsh.exe 7.2.7.0 C:\Program Files\PowerShell\7\pwsh.exe
设置ssh进入的默认终端为PowerShell(添加注册表项):
特别注意:以下的pwsh.exe路径(比如"C:\Program Files\PowerShell\7\pwsh.exe")一定要和你自己电脑里的pwsh.exe的路径对上(可以通过Get-Command pwsh查看其路径)
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\PowerShell\7\pwsh.exe" -PropertyType String -Force
# 结果显示
DefaultShell : C:\Program Files\PowerShell\7\pwsh.exe
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE
PSChildName : OpenSSH
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
2. Ubuntu通过ssh免密登录Windows
在windows中,在~/.ssh目录下新建 authorized_keys (不带任何扩展名)。
在ubuntu中,将~/.ssh下的id_rsa.pub内容复制到windows的~/.ssh/authorized_keys。
(如果ubuntu下没有公钥~/.ssh/id_rsa.pub,可用命令ssh-keygen -t rsa来生成)
如果Windows是 1809 或更高版本,则需要将C:\ProgramData\ssh\sshd_config文件中的以下几行注释掉:
# Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
然后使用命令 Restart-Service sshd 重启sshd服务。
最后,在ubuntu中,输入命令ssh <serverusername>@<serverhostname>,即可实现ssh免密登录到windows。
网上很多资料都是windows宿主机通过ssh连接到ubuntu虚拟机,那么这篇文章实现一下ubuntu虚拟机通过ssh连接windows宿主机,这样ubuntu和windows之间也可以很方便的使用scp命令互相传输文件。
当然,ubuntu不是虚拟机也行,只要配置好windows服务端,都可以通过ssh远程连接到windows。你甚至可以用ipad通过ssh连接到windows。
建议读者先阅读国外的资料(中文博客的质量实在是一言难尽),参考:
-
如何从 Linux 或 Windows 或任何地方通过 SSH 连接到 Windows 10 机器
-
使用公钥身份验证,为 Windows 设置 OpenSSH
1. 安装SSH sever
打开PowerShell。如果Windows没有ssh的server服务,首先安装一下。
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
$ Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Name : OpenSSH.Client~~~~0.0.1.0
State : Installed
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
$ Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Path :
Online : True
RestartNeeded : False
$ Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Name : OpenSSH.Client~~~~0.0.1.0
State : Installed
Name : OpenSSH.Server~~~~0.0.1.0
State : Installed
启动server:
Start-Service sshd
#Get-Service sshd 查看是否启动
(可选)设置为自启动:
Set-Service -Name sshd -StartupType 'Automatic'
2022.11.15 更新
(可选)设置ssh进入的默认终端为PowerShell(添加注册表项):
此处一定要慎重,不要轻易更改注册表,除非你知道自己在做什么。
通过Get-Command pwsh查看pwsh.exe的路径:
Get-Command pwsh
# 结果显示:
CommandType Name Version Source
----------- ---- ------- ------
Application pwsh.exe 7.2.7.0 C:\Program Files\PowerShell\7\pwsh.exe
设置ssh进入的默认终端为PowerShell(添加注册表项):
特别注意:以下的pwsh.exe路径(比如"C:\Program Files\PowerShell\7\pwsh.exe")一定要和你自己电脑里的pwsh.exe的路径对上(可以通过Get-Command pwsh查看其路径)
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\PowerShell\7\pwsh.exe" -PropertyType String -Force
# 结果显示
DefaultShell : C:\Program Files\PowerShell\7\pwsh.exe
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE
PSChildName : OpenSSH
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
2. Ubuntu通过ssh免密登录Windows
在windows中,在~/.ssh目录下新建 authorized_keys (不带任何扩展名)。
在ubuntu中,将~/.ssh下的id_rsa.pub内容复制到windows的~/.ssh/authorized_keys。
(如果ubuntu下没有公钥~/.ssh/id_rsa.pub,可用命令ssh-keygen -t rsa来生成)
如果Windows是 1809 或更高版本,则需要将C:\ProgramData\ssh\sshd_config文件中的以下几行注释掉:
# Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
然后使用命令 Restart-Service sshd 重启sshd服务。
最后,在ubuntu中,输入命令ssh <serverusername>@<serverhostname>,即可实现ssh免密登录到windows。
版权声明:本文标题:Ubuntu通过ssh公钥验证远程连接到Windows 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1726303918a607211.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论