美文网首页
Windows下设置SSH免密

Windows下设置SSH免密

作者: 刘小白DOER | 来源:发表于2021-03-18 23:56 被阅读0次

        笔者以前在linu之间配置SSH秘钥来完成免密,为了方便Windows Terminal使用,ssh又无法直接在命令行指定密码,于是就需要配置一下Windows到linux的免密,公钥的分发需要手动scp传递,新建公钥文件时需要注意权限问题。

    1、Windows生成密钥对

        在cmd运行ssh-keygen -t rsa ,在目录下生成一个 .ssh 文件夹,其中包含私钥文件 id_rsa 和公钥文件 id_rsa.pub。

        2、将公钥复制到远程主机

        在Linux中有ssh-copy-id命令将公钥复制到远程主机,但是Windows下可没有哦,那么就需要手动分发。下面使用scp命令来远程传递文件,也可以使用winscp可视化操作。

    scp id_rsa.pub pi@192.168.31.103:/home/pi/.ssh

        然后进入到远程主机将id_rsa.pub重命名为authorized_keys。

        mv id_rsa.pub authorized_keys

        为了保存公钥也可以cat  id_rsa.pub >> authorized_keys,或cp  id_rsa.pub  authorized_keys 。

        3、配置完成后测试正常。

        上面的是Windows登陆树莓派免密配置,但是笔者配置Windows登陆centos7虚拟机时无法完成公钥认证,导致免密失败。

        查看调试信息:ssh -v mycentos@192.168.31.120 ,感觉是无法认证公钥。

        关闭centos7的/etc/ssh/sshd_config配置文件中秘密认证登陆后:Permission denied (publickey,gssapi-keyex,gssapi-with-mic),应该是配置文件的错误。密钥在树莓派上可以正常识别认证的。但是笔者测试修改了一个几个配置条目都不行,都不知道那里有问题,带以后再工作中解决吧,一时半会也搞不定。

    2021年3月9日:

        笔者在红帽redhag生产系统上查看/etc/ssh/sshd_config配置文件,发现配置文件是保持默认的,都没有修改,但是在末尾添加了一个AllowUsers,笔者将其修改后加入到centos系统中但是还是不行。

        AllowUsers *@192.168.*.*

        最后找到了一个权限问题,即使authorized_keys文件权限问题,因为是笔者在.ssh目录下新建的文件的默认权限是-rw-rw-r-- (664),对于authorized_keys来说权限过大,修改为644后就可以了。

        测试结果如下。

        还有可以免去输入用户的麻烦,这就需要解决解决本地登陆用户与远程登陆用户不一致的问题。在.ssh文件夹下新建config文件,并写入ip和用户名信息。接下来就可以使用ssh mycentos来免密免用户登陆了。

    相关文章

      网友评论

          本文标题:Windows下设置SSH免密

          本文链接:https://www.haomeiwen.com/subject/tzemcltx.html