首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Linux到Windows 10设置无密码SSH

从Linux到Windows 10设置无密码SSH
EN

Stack Overflow用户
提问于 2019-10-03 15:25:12
回答 1查看 3.5K关注 0票数 2

我正在尝试设置一个从linux服务器到windows计算机的无密码ssh路径。我目前在windows机器上运行MobaSSH。我可以将ssh从linux服务器转到windows机器,执行命令也很好,但我必须输入密码。

我在linux系统上创建了一个公共RSA密钥,并使用WinSCP将文件复制到C:\Users\MyUserName.ssh文件夹,并在windows机器上重新启动MobaSSh服务。

没有密码它还是不会让我进去的。我在这里错过了什么?任何帮助都会受到极大的赞赏。

EN

回答 1

Stack Overflow用户

发布于 2019-10-03 16:44:40

OpenSSH适用于Windows 10,对我来说非常可靠。我可以在没有密码的情况下持续地从Linux机器连接。这里是如何设置它。

  • 升级到Windows 10版本1809或更高版本
代码语言:javascript
复制
- check via: `powershell -c "(Get-Item 'HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion').GetValue('ReleaseID')"`; see also `systeminfo | findstr /B /C:"OS Name" /C:"OS Version"` for Pro vs. Home, build number
- upgrade via Windows Update settings or [Download Windows 10](https://www.microsoft.com/en-us/software-download/windows10) (the latter works around an issue where some systems are [stuck at 1803](https://www.reddit.com/r/windows/comments/c3anuk/still_on_1803_and_check_for_updates_still_not/))

  • 将SSH客户端和服务器(作为管理员;来源) -安装在PowerShell
代码语言:javascript
复制
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命令行来源为管理员()启用公钥登录
代码语言:javascript
复制
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
  • 为非管理员启用公钥登录( in PowerShell )
代码语言:javascript
复制
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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58222327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档