通过两台linux主机配置ssh实现互相免密登陆

本文详细描述了如何在node1和server主机间进行SSH密钥对生成、公钥交换以及使用私钥实现无需密码的自动登录过程。

 

node1主机IP:192.168.48.129

server主机IP:192.168.48.130

 

1、在node1主机上生成密钥对:

ssh-keygen -t rsa

bd5f7c4afb234574963fcd236f81e10f.jpg

 

2、将node1主机的公钥发送到server主机:ssh-copy-id root@192.168.48.130

57ef019a58d348f889fa695b4c4937c5.jpg 

3、使用node1主机的私钥登录到server主机:ssh root@192.168.48.130

5e6f75c1ba414d49963a0a30c8bebc1a.jpg

 

 4、在server主机上生成密钥对:

ssh-keygen -t rsab213b38fd1aa4628b9a66bae1be7170b.jpg

 

5、将server主机的公钥发送到node1主机:ssh-copy-id root@192.168.48.129

9606b8cd673a4e749d36305ede99d9d9.jpg 

6.使用server主机的私钥登录到node1主机:ssh root@192.168.48.129

93ae302146e64f459eff4ae4540898c9.jpg 

 

 

 

 

 

 

 

 

 

<think>首先,用户的问题是基于系统指令的,我需要遵循规则:所有行内数学表达式用$...$,独立公式用$$...$$,LaTeX语法正确,使用中文回答,生成相关问题,并在引用段落末尾添加引用标识如[^1]。 用户查询是:“我想查找在Linux机器之间实现互相免密登录的方法 请问Linux机器之间实现互相免密登录的方法”。用户提供了两个引用:[^1]和[^2],但系统指令说“上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题和你的回答”。用户上一次的问题是相等的,所以我要基于这个回答。 我的回答需要结构清晰,帮助用户逐步解决问题。内容要真实可靠,基于Linux免密登录的标准方法。 关键步骤实现互相免密登录: 1. 在每台机器上生成SSH密钥对:使用`ssh-keygen`命令,一路回车使用默认设置。 2. 将公钥复制到其他机器:使用`ssh-copy-id`命令,指定用户名和目标主机IP。 3. 确保所有机器都互相复制公钥,以便双向或多向免密登录。 用户提到“互相免密登录”,意思是所有机器之间都能无密码SSH登录对方。所以,我需要描述如何设置多台机器之间的互信。 结构化回答: - 介绍:简要解释免密登录的好处。 - 步骤:一步一步指导如何设置。 - 代码块:由于是命令行操作,我可以使用代码块来显示命令,就像示例中的Python代码。 - 结尾:添加相关问题。 引用标识:用户提供了[^1]和[^2],所以在回答中如果引用这些内容,需要在末尾添加标识。但系统指令说“请尽可能多的参考用户上一次的问题和你的回答”,用户上一次问题相同,所以我可以直接回答。引用部分,用户说“上述引用仅供参考”,但我应该在回答中自然地使用它们。 引用[^1]是关于发送公钥的命令:`ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.0.1` 引用[^2]是关于生成密钥:`ssh-keygen` 在回答中,我可以提到这些命令作为参考。 生成相关问题:在回答末尾,添加“§§相关问题§§”部分,列出2-3个相关问题。 使用中文回答。 完整回答结构: 1. 开头:解释互相免密登录的概念和方法概要。 2. 步骤: - 步骤1:在每台机器上生成SSH密钥。 - 步骤2:将公钥复制到所有其他机器。 - 可选:描述如何验证设置。 3. 代码示例:用代码块显示命令。 4. 结尾:相关问题。 确保LaTeX正确:由于没有数学表达式,我可以避免使用,但如果提到公式,确保格式正确。但在这个主题中没有数学,所以可能不需要。 现在,撰写回答。 </think>### Linux机器之间实现互相免密登录的方法 在Linux环境中,实现多台机器之间的互相免密登录(即SSH无密码登录)可以显著简化远程管理任务。这主要通过生成SSH密钥对并交换公钥来实现。下面我将一步步指导您完成设置过程。假设您有多台机器(例如,名为server1、server2等),目标是所有机器之间都能互相SSH登录而无需输入密码。设置过程基于标准的OpenSSH工具,确保安全可靠[^1][^2]。 #### 步骤分解 整个过程分为两个主要阶段:在每台机器上生成SSH密钥对,并将公钥分发到其他所有机器。以下是详细步骤: 1. **在所有机器上生成SSH密钥对** 在每台机器上执行相同的命令来生成密钥。使用`ssh-keygen`生成RSA密钥(默认类型),一路回车使用默认设置(例如,密钥存储在`~/.ssh/id_rsa`和`~/.ssh/id_rsa.pub`)。 示例命令(在每台机器的终端执行): ```bash ssh-keygen -t rsa ``` 执行后按回车接受所有默认选项(不设置密码短语)。这将创建私钥文件`id_rsa`和公钥文件`id_rsa.pub`在`.ssh`目录下[^2]。 2. **将公钥复制到所有其他机器** 您需要将每台机器的公钥文件(`id_rsa.pub`)添加到其他机器的`~/.ssh/authorized_keys`文件中。使用`ssh-copy-id`命令简化此过程。假设您有三台机器(server1、server2、server3),IP地址分别为192.168.0.1、192.168.0.2、192.168.0.3,用户名都为`hadoop`。 - **在server1上执行**:将公钥复制到server2和server3。 ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.0.2 # 复制到server2 ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.0.3 # 复制到server3 ``` - **在server2上执行**:将公钥复制到server1和server3。 ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.0.1 # 复制到server1 ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.0.3 # 复制到server3 ``` - **在server3上执行**:类似地,复制到server1和server2。 ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.0.1 ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.0.2 ``` 执行这些命令时,系统会提示您输入目标机器的密码(仅一次)。完成后,公钥会自动添加到目标机器的`authorized_keys`文件中[^1]。 3. **验证设置** 测试互相登录是否成功。例如,从server1 SSH到server2: ```bash ssh hadoop@192.168.0.2 ``` 如果设置正确,您应该直接登录而无需密码。对其他机器重复测试,确保所有配对都工作正常。 #### 注意事项 - **安全性**:确保`.ssh`目录权限为`700`(`chmod 700 ~/.ssh`),`authorized_keys`文件权限为`600`(`chmod 600 ~/.ssh/authorized_keys`),以防止未授权访问。 - **大规模集群**:如果机器数量多(如Hadoop集群),可以使用脚本自动化公钥分发。 - **错误处理**:如果遇到“Permission denied”错误,检查SSH服务是否运行(`sudo systemctl status sshd`),并确保网络连通。 通过以上步骤,所有机器之间就能实现互相免密登录,提升运维效率[^1][^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值