雅诗的小世界
没必要的事就不做,必要的事就尽快做。
——冰菓
开启 Windows 自带的 SSH 服务
2018年2月26日 • 我的博客

Kagurazaka Yashi

Kagurazaka Yashi

欢迎来到我的个人网站!欢迎在评论区留个脚印,交个朋友。


这是一篇原创文章,转载请注明来自雅诗的小世界

 

Windows 10 终于可以有 SSH 官方包了,比起之前的 Telnet 安全多了。终于向 Linux 学习了。 今天尝试了一下开启 Windows 10 的 SSH 服务器功能,可以通过远程终端来控制这台计算机。

安装

  1. 进入 Windows 系统设置,打开「应用」。
  2. 进入「管理可选功能」。
  3. 可以看到「OpenSSH Client」和「OpenSSH Server」,一个是客户端,一个是服务端。
  4. 返回上一页可以看到安装进度,安装完成后,需要重启一次。
  5. 打开命令提示符(cmd),使用「where ssh」确定一下位置,发现 OpenSSH 被安装在了 C:\Windows\System32\OpenSSH\ 里面,有各种工具。
  6. 现在,可以连接自己的开启 SSH 的服务器了。
当然,本文目标是将本机设定为主机,这只是刚刚开始。

设定

  1. 现在尝试一下连接本机,发现不可以。
  2. 一般来说,这应该是个服务,运行输入「services.msc」查看一下服务列表,可以看到新增的 ssh 开头的几个服务。其中「sshd」就是服务器啦,它并没有运行,运行一下出现错误,看来还需要额外的设置。
  3. 根据提示信息,应该去「Local Security Settings MMC 管理单元」看看关于用户权限方面的设置。运行输入「secpol.msc」或从管理工具中找到「本地安全策略」打开它。
  4. 展开「本地策略」,展开「用户权限分配」,打开「替换一个进程级令牌」(Replace a process level token Permission) 的属性。
  5. 输入「NT SERVICE\sshd」并点击「检查名称(C)」,没问题的话一路「确定」即可。
  6. 再次尝试启动「sshd」服务,仍然没有成功,不过换了一个错误。这个错误只是说它崩溃了,没有给出进一步的解决方案,去 SSH 安装文件夹看看有没有什么日志之类的东西吧。
  7. 用「where sshd」找到安装文件夹,进去发现有一个「Logs」日志文件夹,进去可以看到已经不为空的 sshd 日志文件「sshd.log」,打开它可以看到,它想要密钥文件。
  8. 正好安装文件夹里已经包括了密钥生成软件「ssh-keygen.exe」,运行一下。 Enter file in which to save the key:输入密钥文件保存在哪,可以直接回车采用默认。 Enter passphrase (empty for no passphrase):给密钥文件设定一个密码。 Enter same passphrase again:再输入一遍。 failed: invalid argument:失败-无效参数???
  9. 算了,一切都按默认的来吧,默认的总可以吧。输入「keygen.exe -A」一键生成。 ssh-keygen.exe: generating new host keys: ED25519:生成了新的密钥,此处是 ED25519 ,每次生成时这都是不一样的。 然后你会在 OpenSSH 文件夹里看到两个新增的文件名包含「ED25519」的「key」。带有「.pub」的是公钥,不带的是私钥。
  10. 再次尝试启动服务,依旧 1067 错误,翻日志,依然是 Could not load host key ,读取不了。读取问题的话,既然是密钥文件,在 Linux 下如果权限错误的话(比如 777 ),命令行里会出现一个「很大的」警告信息,也许 Windows 里面也要好好设置一下文件权限吧。
  11. 打开「ssh_host_ed25519_key」的文件属性,选择「安全」选项卡,点击「编辑(E)...」,点击「添加(D)...」,输入「NT SERVICE\sshd」并点击「检查名称(C)」,没有问题的话点击「确定」,然后只给新增的「sshd」分配「读取」允许权限。
  12. 删除权限列表内你自己用户。最终确保列表内只有「SYSTEM」、「Administrators」、「sshd」三个用户。然后「确定」-「是(Y)」。
  13. 接下来点「高级(V)」按钮,找到所有者的「更改(C)」,输入「NT SERVICE\sshd」并点击「检查名称(C)」,没有问题的话点击「确定」,所有者会改为「sshd」。一路「确定」。
  14. 再次尝试启动服务,终于成功了!

完成

至此,电脑可以接受远程登录了。 使用 PuTTY 进行 SSH 连接效果图: 使用 FileZilla Client 进行 SFTP 连接效果图:

评论区(为了避免垃圾信息,部分留言可能不会立即显示,其实已经发送成功,在我回复时会显示出来。)

tripodxiao
2019-04-08 17:38:16
GNU/Linux / 谷歌浏览器 ( 版本 71.0.3578.99 )
这么麻烦,心疼博主,微软这是故意设障碍吗
  • 发表评论

    昵称
    电子邮件
    网址(选填)

    更多栏目

    联系我

     
    Telegram Google+ Facebook Twitter
    新浪微博 Github Steam 哔哩哔哩
     

    分享本页

    当前页面二维码

    微信公众号
    微信公众号

    友谊广告

    喵窩MC

    云颜文字

    樱花国代购

    小猫设置


    设置/关闭猫咪

    🐱 Configure Neko
    ×

     Display

    Size:


    Refresh:


     Sensitivity

    Speed:


    Sensitivity:


    OK
    About
    Exit

    🐱 About Neko
    ×

    Neko for HTML5 v1.0

    Written by Kagurazaka Yashi.
    Taking ingredients from Windows Version:
    The original program (X-Windows)
    was written by Masayuki Koba and
    later modified by Tatsuya Kato.

    This program is proud to be FREEWARE!

    Github...
    OK