• ssh 免密码登陆


    服务器被登陆的时候,需要用户提供它的密码。

    ssh someuser@somehost

    有时人们会觉得输入密码比较麻烦。有时服务器是不想让人直接登陆,但是又必须允许部分人登陆进来。

    这个时候,服务器提供了一个方式,需要客户端提供一个证明他是合格的登陆者的资质。当然了,客户端登陆的时候会把另外一些信息和这个资质进行匹配。

    这基本上就是RSA非对称加密的公钥和私钥。

    ===========================================

    服务器端必须要打开sshd服务,并且

    /etc/ssh/sshd_config文档中,如下代码不能被注释掉:

    RSAAuthentication yes  

    PubkeyAuthentication yes  

    AuthorizedKeysFile      .ssh/authorized_keys

    客户需要通过ssh-kengen生成两个文件,一个公钥,带pub,一个私钥,不带pub

    1. $ ssh-keygen -t rsa -b 2048 -f server_rsa -C "xxx@company"  

    -t rsa 表示使用RSA加密得法,你也可以使用dsa代替。-b 2048表示使用2048位加密,如果你对安全性要求更高,可以使用4098位加密。-f server_rsa表示要生成的文件名为server_rsa(密钥)和server_rsa.pub(公钥)。最后的-C "xxx@company"是注释,会追加在造成的Key文件尾部,通常会写上用户或机器的身份信息备查。之后输入RSA Key的使用密码并确认,ssh-keygen命令就会造成一对密钥对。把生成的密钥对拷贝到本机的~/.ssh/下

    ***以上server_rsa在windows下最好改为id_rsa,不知道为什么

    然后把这个公钥的内容,复制到服务器上的 ~/.ssh/authorized_keys文件的末尾,成为独立的一行。

    当然了,要保证.ssh文件夹的权限为700,authorized_keys文件的权限为600。

    这样一来,客户端就可以ssh免密码登陆了,这个时候服务器上对应的用户的密码都可以删除了(无法远程登陆了,不是删除用户)。

    git私有服务器也可以利用以上方式。

    如果登录不上去可以通过

    ssh -v user@somehost

    查看原因。可能是生成的私钥的名称不对,改为id_rsa应该就可以了

  • 相关阅读:
    linux上安装mysql
    Linux上安装elasticsearch
    解决pyhton aiohttp ssl:None [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)
    mysql数据库的数据变更事件获取以及相关数据
    [天下小黑盒]打地鼠小助手
    看到当年自己学SQL Server 的笔记
    CodeFirst EF中导航属性的个人理解
    在Win10下如何安装IMSL6.0
    商品中台三期压测
    压测
  • 原文地址:https://www.cnblogs.com/voctrals/p/7010025.html
Copyright © 2020-2023  润新知