ssh - 设置从 Linux 到 Windows 10 的无密码 SSH
问题描述
我正在尝试设置从 linux 服务器到 windows 机器的无密码 ssh 路径。我目前在 Windows 机器上运行 MobaSSH。我可以从 linux 服务器 ssh 到 windows 机器并执行命令就好了,但我必须输入密码。
我在 linux 系统上创建了一个公共 RSA 密钥,并使用 WinSCP 将文件复制到 C:\Users\MyUserName\.ssh 文件夹并在 Windows 机器上重新启动了 MobaSsh 服务。
它仍然不会让我在没有密码的情况下 ssh。我在这里想念什么?非常感谢任何帮助。
解决方案
OpenSSH 可用于 Windows 10,并且对我来说非常可靠。我可以在没有密码的情况下从 Linux 机器上始终如一地连接。以下是如何设置它。
升级到 Windows 10 版本 1809 或更高版本
- 检查通过:
powershell -c "(Get-Item 'HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion').GetValue('ReleaseID')"
; 另请参阅systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
Pro vs. Home,内部版本号 - 通过 Windows Update 设置升级或下载 Windows 10(后者解决了某些系统卡在 1803的问题)
- 检查通过:
在 Windows PowerShell 中安装 SSH 客户端和服务器(以管理员身份;源代码):
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd # remote login should be possible following this command
Set-Service -Name sshd -StartupType 'Automatic'
Get-NetFirewallRule -Name *ssh* # there should be a firewall rule named "OpenSSH-Server-In-TCP" # optional
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 # optional
- 为管理员启用公钥登录(源) -从 Linux 命令行:
scp ~/.ssh/id_rsa.pub administrator@remote_computer_name:'C:\ProgramData\ssh\administrators_authorized_keys' # if using an alternate method, ensure file is not UTF-16 encoded
icacls C:\ProgramData\ssh\administrators_authorized_keys /remove "NT AUTHORITY\Authenticated Users"
icacls C:\ProgramData\ssh\administrators_authorized_keys /inheritance:r
get-acl C:\ProgramData\ssh\ssh_host_dsa_key | set-acl C:\ProgramData\ssh\administrators_authorized_keys
- 为非管理员启用公钥登录 -在 Windows PowerShell 中:
Install-Module -Force OpenSSHUtils -Scope AllUsers # for: Repair-AuthorizedKeyPermission
cd C:\Users\...
ssh-keygen # create ~/.ssh
# add key(s) to ~/.ssh/authorized_keys
$ConfirmPreference = 'None'; Repair-AuthorizedKeyPermission -FilePath .ssh\authorized_keys
# if above fails, try ''%%Set-ExecutionPolicy Unrestricted -Scope CurrentUser%%''; see also https://github.com/PowerShell/Win32-OpenSSH/issues/1245#issuecomment-440388604
推荐阅读
- angular - 奇怪的路由问题 Angular 7 + Ionic 4 Beta
- matlab - 如何输出一个评估了数字输入的函数?
- reactive-programming - 组合两个不同类型的 Flux 实例
- jekyll - 修复 GitHub Pages 上 Jekyll 主题的页面宽度
- sql-server - T SQL 游标返回空表
- sql-server - 如何在不使用函数的情况下拆分存储在 XML 节点中的逗号分隔值并显示为单独的记录 - SQL Server 2012
- node.js - Express Mongoose 使用点标记字段作为要更新的字段
- perl - .= perl 中的运算符
- flask - 在 apache2 服务器上使用一个配置文件部署多个破折号应用程序时出现问题
- r - 使用 lapply 和 filter 在过滤后的 columname 中使用模式来子集数据帧