zoukankan      html  css  js  c++  java
  • Linux

    Linux SSH 使用密钥登陆

    1. 通常我们登录 Linux 服务器,我们需要使用密码进行登录,但是密码存在被暴力破解的可能。
    2. 可以将默认服务端口 22 改成其他不常用的端口。
    3. 可以设置非常复杂的密码。
    4. 可以使用密钥进行登录,彻底免去密码输入的过程。
    5. 原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

    环境准备

    1. 如果你的机器是Windows系统,可能需要单独的软件来生成密钥,这里我用的是Git Bash,开发的伙伴应该都熟悉。
    2. Linux 系统一般自带,可以直接使用。
    # 在本机生成公钥和私钥
    ssh-keygen -t rsa # 如果不是测试使用,需要对passphraseu设置密码。
    ssh-keygen -t dsa # 另外一种算法,证书登录我们通常使用 rsa。
    1. 在用户主目录生成密钥对。
    2. Windows 用户也在用户主目录中例如:“C:UsersChris.ssh”。
    # 会在用户的主目录生成公钥和私钥
    ~/.ssh/id_rsa # 私钥
    ~/.ssh/id_rsa.pub # 公钥
    1. 修改目标主机的SSH配置文件,允许使用密钥登陆
    vim /etc/ssh/sshd_config
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    1. 将id传到目标主机上(会提示输入一次密码)
    ssh-copy-id postgres@172.26.114.87

    使用说明

    1. Putty等软件可以直接加载私钥,然后直接访问目标主机。
    2. 这里我们用的是mobaxterm,同样可以直接使用密钥,更方便更安全。

    权限问题

    把密钥移动到其他机器上的时候,提示了权限问题。

    Permissions 0744 for '/Users/chris/.ssh/id_rsa' are too open.
    chmod 400 ~/id_rsa*

  • 相关阅读:
    tyvj1117 拯救ice-cream
    codevs3410 别墅房间
    codevs1099 字串变换
    codevs1226 倒水问题
    codevs2449 骑士精神
    codevs1225 八数码难题
    Wikioi 3776 生活大爆炸版石头剪子布
    codevs1197 Vigenère密码
    枚举 + exgcd
    C++ 排序引用的优化
  • 原文地址:https://www.cnblogs.com/duchaoqun/p/11940859.html
Copyright © 2011-2022 走看看