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

前言

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

一、原理解释

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

在客户端生成一对SSH密钥(公钥和私钥)

将客户端的公钥复制到目标服务器的authorized_keys文件中

当客户端尝试SSH连接服务器时,服务器将使用该公钥进行身份验证

如果身份验证通过,客户端就可以登录服务器而无需输入密码

二、实现步骤

  • 检查是否存在密钥对

    shell 复制代码
    ls ~/.ssh

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

    生成密钥对(如果未生成)

  • 生成密钥对

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

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

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

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

  • 免密登录其他服务器

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

  • (可选) SSH免密登录时指定密钥

    如需指定使用特定的密钥对进行连接,可使用:

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

注意事项: 密钥对的权限设置很重要,私钥文件权限应为600,公钥文件权限可为644。

安全考虑,私钥文件不应复制到其他服务器,只能由客户端自身持有。

SSH免密登录会带来一定的安全隐患,因此生产环境时需评估风险。

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

  • 需要免密的每个机器上执行 如下命令

    shell 复制代码
     # 生成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 文件中 并保存即可

  • 测试

shell 复制代码
# 更换为具体需要测试的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 !!!

相关推荐
热爱嵌入式的小许1 小时前
Linux基础项目开发1:量产工具——显示系统
linux·运维·服务器·韦东山量产工具
韩楚风5 小时前
【linux 多进程并发】linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化
linux·服务器·性能优化·架构·gnu
陈苏同学5 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
Ambition_LAO5 小时前
解决:进入 WSL(Windows Subsystem for Linux)以及将 PyCharm 2024 连接到 WSL
linux·pycharm
Pythonliu76 小时前
茴香豆 + Qwen-7B-Chat-Int8
linux·运维·服务器
你疯了抱抱我6 小时前
【RockyLinux 9.4】安装 NVIDIA 驱动,改变分辨率,避坑版本。(CentOS 系列也能用)
linux·运维·centos
追风赶月、6 小时前
【Linux】进程地址空间(初步了解)
linux
栎栎学编程6 小时前
Linux中环境变量
linux
挥剑决浮云 -6 小时前
Linux 之 安装软件、GCC编译器、Linux 操作系统基础
linux·服务器·c语言·c++·经验分享·笔记
小O_好好学7 小时前
CentOS 7文件系统
linux·运维·centos