• linux-配置服务器之间 ssh免密登录


    前言

    在管理多台Linux服务器时,为了方便操作和自动化任务,实现服务器之间的SSH免密登录是非常有必要的。SSH免密登录可以避免每次远程连接时输入密码,大大提高效率。本文将详细介绍SSH免密登录的原理和实现步骤。

    一、原理解释

    SSH免密登录的实现依赖于SSH密钥对,主要是利用公钥加密技术进行身份验证。具体过程如下:

    在客户端生成一对SSH密钥(公钥和私钥)
    将客户端的公钥复制到目标服务器的authorized_keys文件中
    当客户端尝试SSH连接服务器时,服务器将使用该公钥进行身份验证
    如果身份验证通过,客户端就可以登录服务器而无需输入密码

    二、实现步骤

    • 检查是否存在密钥对

      ls ~/.ssh
      

      如果存在id_rsa和id_rsa.pub两个文件即为已有密钥对。
      生成密钥对(如果未生成)

    • 生成密钥对

      # 一路回车则可顺利生成
      ssh-keygen -t rsa
      
    • 将公钥复制到目标服务器

      # user 替换为登录目标服务的用户  server 替换为目前服务的ip 或者host 
      ssh-copy-id user@server
      # 例如
      ssh-copy-id root@192.168.1.1
      # 输入目标服务器密码后即可完成复制。
      
      

      在这里插入图片描述

    • SSH连接测试

      # user 替换为登录目标服务的用户  server 替换为目前服务的ip 或者host 
      ssh user@server
      

      此时应该可以直接登录而无需输入密码。

    • 免密登录其他服务器
      对于需要登录的其他服务器,重复步骤3和4即可。

    • (可选) SSH免密登录时指定密钥
      如需指定使用特定的密钥对进行连接,可使用:

      # user 替换为登录目标服务的用户  server 替换为目前服务的ip 或者host 
      ssh -i 私钥文件 user@server
      

    注意事项: 密钥对的权限设置很重要,私钥文件权限应为600,公钥文件权限可为644。
    安全考虑,私钥文件不应复制到其他服务器,只能由客户端自身持有。
    SSH免密登录会带来一定的安全隐患,因此生产环境时需评估风险。

    三. hadoop官方文档实现免密的步骤

    • 需要免密的每个机器上执行 如下命令
       # 生成ssh 公私钥 如果存在会进行覆盖提示
       ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
       # 将公钥文件 写到ssh authorized_keys 文件中
       cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
       # 授权600 
       chmod 0600 ~/.ssh/authorized_keys
      
    • 将每个机器的 authorized_keys 文件合并,同时将合并后的文件内容 复制到每个机器的ssh authorized_keys 文件中 并保存即可
    • 测试
    # 更换为具体需要测试的IP 或者 hostname
    ssh 192.168.x.x
    

    参考文件: https://hadoop.apache.org/docs/r3.3.6/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation

    end


    good day !!!

  • 相关阅读:
    kubernetes学习笔记-ingress-nginx
    Swift 5.5之Continuation
    蓝牙Mesh系统开发四 ble mesh网关节点管理
    golang中的并发模型
    德思特分享丨一文带你了解ADC测试参数有哪些?
    C++ day2
    详解GaussDB(DWS)中的行执行引擎
    区块链交易平台开发流程
    数据分析报告的规范
    laravel事件监听和job有哪些区别
  • 原文地址:https://blog.csdn.net/a15835774652/article/details/139143062