首页 > 系统相关 >烂笔头笔记:Windows 10下配置ssh免密钥访问需要注意的事项

烂笔头笔记:Windows 10下配置ssh免密钥访问需要注意的事项

时间:2022-10-19 12:36:30浏览次数:80  
标签:10 私钥 Windows rsa ssh 服务器 权限 密钥


目录



简介

从Windows 10 1803版本开始,系统自带了OpenSSH Client(​​https://devblogs.microsoft.com/commandline/windows10v1803/​​),这让广大程序员朋友,尤其是经常操作Linux的IT从业者有了原生的访问服务器方法。然而在实践过程中本人遇到一些问题,随手笔记,希望能帮到同样遇到这些问题的朋友

开启ssh-agent服务

在系统默认状态,或安装某些更新之后,可能ssh-agent服务没有开启,这会影响通过密钥证书方式访问ssh服务器的这部分用户,导致无法连接,远端提示:Permission Deny。通常的解决办法是将本地的私钥加入到ssh代理中。命令为:

ssh-add %userprofile%\.ssh\id_rsa

但是运行后会提示:

Error connecting to agent: No such file or directory

此时只需要在“运行”(Win + R)中执行services.msc,找到名为:OpenSSH Authentication Agent的服务,将其启动类型设置为:“自动”,并且将其启动即可。

密钥文件访问权限问题

当尝试将私钥添加到ssh代理时,或许你会看到这样一个错误提示:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'C:\\Users\\someuser\\.ssh\\id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

此时你应该考虑自己的密钥对权限设置过于宽松,会产生安全问题,最终导致本次私钥添加动作失败。设置密钥的宗旨是什么呢:

  1. 私钥:当前系统的SYSTEM,Administrators用户组,拥有该文件的完全控制权限;该文件的所有者拥有修改权限。
  2. 公钥:除去私钥的所有权限设置外,可以允许Everyone拥有读取和执行权限。

除去上述权限,其他权限一律取消,设置好之后就OK了。如果还是记不住怎么办呢?那就在系统中尝试使用:

ssh-kegen -t rsa -b 2048

来临时生成一个密钥对,然后分别点击私钥(id_rsa)和公钥(id_rsa.pub)文件来查看其属性的安全标签来确认如何设置。

关于多个密钥如何使用

如果你打算在访问不同远程服务器时使用不同的用户和私钥,那么可以将策略保存在%userprofile%\.ssh目录下,并以config作为文件名(没错,没有扩展名),文件权限与私钥权限设置一样。下面给出一个示例:

Host code.csdn.net
HostName code.csdn.net
User bob
PreferredAuthentications publickey
IdentityFile ~/.ssh/csdn.rsa
Host github.com
HostName github.com
User bob
PreferredAuthentications publickey
IdentityFile ~/.ssh/github.rsa
Host git.mycompany.com
HostName git.mycompany.com
User bob
PreferredAuthentications publickey
IdentityFile ~/.ssh/git_key.rsa

Host:要连接的远程服务器地址(IP或者域名、主机名);

HostName:含义同Host,与Host保持一致;

User:指登录远程服务器时使用的用户名;

PreferredAuthentication:优先使用的鉴权方式,这里填写固定的public(即:使用公钥鉴权);

IdentityFile:既然选择了公钥方式鉴权,则需要指定本地连接到远程时使用的对应私钥文件,所以在这里设置对应的私钥文件完整文件名即可(文件名可以使用“~”作为当前用户的home目录,也可以使用C:\\Users\\someuser\\.ssh\\id_rsa这样的绝对目录,但是要注意在Windows中请使用“\\”来转义目录分隔符“\”)。

注意:在上面的配置文件中Host对应下面的配置项有缩进,这个缩进使用tab或者空格都可以,没有具体要求。

关于多个服务器如何使用

如果你有一组服务器,想在自己的客户端通过同一个私钥进行访问,则可以通过Host通配的方式实现。

Host 192.168.1.*
User bob
Port 10086
IdentityFile ~/.ssh/cluster.rsa

经过上述通配设置后,通过客户端访问服务器192.168.1.1~255(假设子网掩码为24)将统一使用cluster.rsa私钥连接到服务器的10086端口。特别适合经过统一安全配置,改过SSH服务端口号的情况。

测试配置是否正确

ssh工具为我们提供了测试模式,来评估ssh配置是否能够真的连接到远程服务器。请使用如下命令(请根据实际情况替换user和host值):

ssh -T user@host

整个过程中出现任何配置问题都会在回显信息中反馈,帮助定位问题。


标签:10,私钥,Windows,rsa,ssh,服务器,权限,密钥
From: https://blog.51cto.com/u_3932467/5769584

相关文章

  • 李沐老师深度学习安装环境-2022.10.19
    先把anaconda安装好打开PowershellPrompt首先是创建虚拟环境conda create-n(环境名字)python=(python版本号)接下来......
  • 10-git配置比较工具
    git配置比较工具1.修改.gitconfig文件[diff]tool=bc4[difftool]prompt=false[difftool"bc4"]cmd="\"C:/Users/xxx/AppData/Local/BeyondCompare4/BComp.ex......
  • windows环境使用tomcat部署jenkins配置
    一、安装包下载jdk:https://www.oracle.com/java/technologies/downloads/#java8tomcat:https://tomcat.apache.org/download-80.cgijenkins.war:http://updates.jenkins-c......
  • imagemagick: 对损坏的gif图做拆分(ImageMagick 6.9.10)
    一,对正常的gif图拆分:[lhdop@blogimg2]$identifymaoshu.gifmaoshu.gif[0]GIF400x224400x224+0+08-bitsRGB256c0.000u0:00.001maoshu.gif[1]GIF400x22440......
  • 10.19
    Markdown学习标题三级标题四级标题字体Hello,World!Hello,World!Hello,World!Hello,World!引用选择狂神说Java,走向人生巅峰分割线图片![截图](C:\Users\Fhy0303\P......
  • 【2022.10.19】Linux(2)
    学习内容1.虚拟机关键配置名词解释2.远程连接工具3.xshell基本使用4.linux命令准则5.系统运行命令6.常用快捷方式7.文件命令操作8.快照功能9.文件编辑命令10.......
  • Windows下安装和运行Elasticsearch
      安装Elasticsearch之前,你需要先安装一个较新的版本的Java,最好的选择是,你可以从 www.java.com 获得官方提供的最新版本的Java。  点击查看:​​JavaJDK下载......
  • 驱动开发:Win10内核枚举SSDT表基址
    三年前面朝黄土背朝天的我,写了一篇如何在Windows7系统下枚举内核SSDT表的文章《驱动开发:内核读取SSDT表基址》三年过去了我还是个单身狗,开个玩笑,微软的Windows10系统已经......
  • 国外大神制作的史上最精简Win10系统,真有那么好用吗?
    2020年,随着Windows7的落幕,这款延续了10多年,曾经辉煌一时,承载着许多人经典回忆的老版系统最终走向了终点。Win10是继Win7之后,在用户量和评价上,能够和Win7并驾齐......
  • 2022/10/19 分享七要素
    1、开场破冰(用好奇破抗拒)2、一个主题(重点)/次,一旦贪心,观点一多就会乱。(用内容破抗拒)3、分享不是讲过程而是讲故事,要为解决具体问题。(用故事破抗拒)4、分享必须让对方对号......