ssh两台机器配置互相信任关系

本文介绍如何在两台CentOS系统之间配置SSH免密码登录。通过生成公钥和私钥、相互交换并配置authorized_keys文件实现hadoop001与hadoop002之间的双向免密访问。

*注意:本文以root用户为例进行设置

现在有两台CentOS6.5,hostname分别为hadoop001(IP:192.168.226.138)和hadoop002(IP:192.168.226.128)


1、生成ssh的公钥和私钥(两台机器都要操作),如果已经生成过就不需要再次生成
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
2、将hadoop001的公钥传给hadoop002(此操作在hadoop001中进行)
scp ~/.ssh/id_rsa.pub 192.168.226.128:~/.ssh/id_rsa.pub.hadoop001
3、将hadoop001的公钥添加到hadoop002的~/.ssh/authorized_keys文件中
(此操作在hadoop002中进行)
cat ~/.ssh/id_rsa.pub.hadoop001 >> ~/.ssh/authorized_keys
4、将hadoop002的公钥传给hadoop001(此操作在hadoop002中进行)
 scp ~/.ssh/id_rsa.pub 192.168.226.138:~/.ssh/id_rsa.pub.hadoop002
5、将hadoop002的公钥添加到hadoop001的~/.ssh/authorized_keys文件中
(此操作在hadoop001中进行)
cat ~/.ssh/id_rsa.pub.hadoop002 >> ~/.ssh/authorized_keys
6、配置完成并检查

在hadoop001中sshhadoop002,此时已经不用再输入密码

[root@hadoop001 ~]# ssh 192.168.226.128
Last login: Sat May 19 06:54:39 2018 from 192.168.226.138
[root@hadoop002 ~]# 

在hadoop002中sshhadoop001,也已经不用再输入密码

[root@hadoop002 ~]# ssh 192.168.226.138
Last login: Sat May 19 06:54:39 2018 from 192.168.226.128
[root@hadoop001 ~]# 
如果是非root用户进行ssh免密配置,将各自的公钥添加到对应用户的~/.ssh/authorized_keys文件中即可,不过非root用户需要修改~/.ssh/authorized_keys文件的权限
chmod 0600 ~/.ssh/authorized_keys


### SSH 连接的方法 在云计算实验中,SSH 连接是一个重要的环节。以下是关于如何在 CentOS Stream 9 中优化并SSH 的方法。 #### 关闭 SSH DNS 解析以提升连接速度 为了减少因 DNS 查找而导致的延迟问题,可以通过编辑 `sshd_config` 文件来禁用反向 DNS 查询功能。具体操作如下: 1. 打开 `/etc/ssh/ssd_config` 文件进行编辑: ```bash sudo vi /etc/ssh/sshd_config ``` 2. 将以下参数设置为 `no` 来关闭 DNS 反查功能: ``` UseDNS no GSSAPIAuthentication no ``` 3. 保存文件后重启 SSH 服务使更改生效: ```bash sudo systemctl restart sshd ``` 通过上述步骤可以有效解决由于 DNS 延迟引起的 SSH 登录缓慢问题[^1]。 #### 设置 SSH 免密码登录 为了让多台服务器间能够便捷地相互访问而无需每次输入密码,可采用基于公钥认证的方式实现免密登录。其主要流程包括以下几个方面: - **生成密钥对** 使用 `ssh-keygen` 工具生成一对 RSA 密钥: ```bash ssh-keygen -t rsa ``` - **分发公钥到目标主机** 利用 `ssh-copy-id` 命令将本地用户的公钥复制至远程机器上: ```bash ssh-copy-id user@remote_host ``` - **测试无密码登录** 完成以上两步之后尝试再次登录对方设备确认是否已成功建立信任关系: ```bash ssh user@remote_host ``` 如果一切正常,则应该可以直接进入而不需再提供任何凭证信息[^2]。 #### 创建虚拟环境用于实践学习 对于初学者来说,在正式环境中练习可能会带来风险;因此建议先构建一个隔离的学习平台来进行各项技能训练。比如利用 VirtualBox 或 VMware Workstation 虚拟化软件创建多个运行不同角色(如 master/slave nodes)的操作系统实例,并依据实际需求调整硬件资源置情况。例如,按照标准设定一台具有单核 CPU、1GB RAM 和至少 20GB 存储空间的新建虚拟机会比较合适[^4]。 此外,整个过程中还需要熟悉各种基础 Linux 操作指令的应用场景及其语法结构等内容,这有助于更好地管理和维护这些模拟出来的计算节点们之间的协作模式[^3]。 ```python # 示例 Python脚本展示如何自动化部署SSH key import os def generate_ssh_key(username, hostname): command = f'ssh-keygen -t rsa && ssh-copy-id {username}@{hostname}' result = os.system(command) return 'Success' if not result else 'Failed' print(generate_ssh_key('test', 'localhost')) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值