zoukankan      html  css  js  c++  java
  • Linux建立互信关系(ssh公钥登录)

    Linux有多种登录方式,比如telnet、ssh。支持ssh登录方式:口令登录和公钥登录

    ssh登录方式:ssh [-l login_name] [-p port] [user@]hostname

    口令登录:输入密码登录。

    公钥登录:将本端设备的公钥加入到对端的公钥文件authorized_keys,可以免密码登录。

    本文只阐述如何使用公钥免密码登录。

    公钥登录原理:

    所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

    操作步骤:

    1、登录远端设备,修改ssh配置,对应文件路径/etc/ssh/sshd_config或者/etc/sshd/sshd_config,放开如下配置项:

    1 RSAAuthentication yes #启用rsa认证
    2 PubkeyAuthentication yes #启用公钥私钥配对认证方式
    3 AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径
    View Code

    确保权限,.ssh目录为700,authorized_keys权限为600,重启sshd服务:

    service sshd restart

    或者

    systemctl restart sshd

    2、本端生成公钥,运行如下命令:

    ssh-keygen -t rsa

    生成公钥文件id_rsa.pub和私钥文件id_rsa。

    3、将公钥添加到远端.ssh/authorized_keys中,那么本端就可以免密码登录远端设备。

    添加方法,诚所谓八仙过海,各显神通。

    常用方法,通过scp命令拷贝。

    scp local_file remote_file

    比如本端设备192.168.24.16,远端设备192.168.24.17,用文件替换方式:

    本端设备执行:
    scp /root/.ssh/id_rsa root@192.168.24.17:/root/.ssh/authorized_keys
    
    远端设备执行:
    scp root@192.168.24.16:/root/.ssh/authorized_keys /root/.ssh/id_rsa
    View Code

    或者使用ssh-copy-id命令

    ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.24.17 

    关于ssh/sftp/ftp/ftps协议,后续记录。

  • 相关阅读:
    easyUI的汇总列,在前端生成
    return返回两个三元表达式的和,返回不正确,同样要注意在JavaScript中,也是如此
    清除浮动有哪些方式?比较好的方式是哪一种?
    浏览器重置样式
    MUI框架的缩写输入
    会自动消失的提示信息
    JSON.stringify转化报错
    Jquery on方法绑定事件后执行多次
    属性索引选择元素
    字符串赋值数字时的问题
  • 原文地址:https://www.cnblogs.com/HopkinsCybn/p/10105901.html
Copyright © 2011-2022 走看看