前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【三】ubuntu24虚拟机集群配置免密登陆

【三】ubuntu24虚拟机集群配置免密登陆

作者头像
火之高兴
发布2024-07-25 15:26:54
510
发布2024-07-25 15:26:54
举报

环境背景

当前三台ubuntu节点已经完成了虚拟机在vmware fusion中的部署,网络经过测试均已经互通,并且开机使用远程连接进行访问。

image.png
image.png

1. 配置域名映射

编辑每台机器的 /etc/hosts 文件,添加以下内容:

代码语言:javascript
复制
sudo vim /etc/hosts

添加以下行:

代码语言:javascript
复制
172.16.167.131 ubuntu1
172.16.167.132 ubuntu2
172.16.167.133 ubuntu3
image.png
image.png

保存并退出文件。

image.png
image.png

同时,可以给mac物理机主机映射也配置上 ,打开mac终端,先进入root,再编辑hosts文件:

代码语言:javascript
复制
su root
vim /etc/hosts
image.png
image.png

这样,每台机器都能通过域名访问其他机器。

image.png
image.png

2. 配置免密登录

在每台机器上生成SSH密钥对,并将公钥分发到其他机器。

2.1 在每台机器上生成SSH密钥对:

代码语言:javascript
复制
ssh-keygen -t rsa -b 2048

在提示时按Enter键,使用默认文件路径,不设置密码短语。

2.2 将公钥分发到其他机器:

假设现在在 ubuntu1 上,运行以下命令将公钥分发到 ubuntu2ubuntu3

代码语言:javascript
复制
ssh-copy-id ubuntu2
ssh-copy-id ubuntu3

成功的回显如下:

代码语言:javascript
复制
root@ubuntu1:~# ssh-copy-id ubuntu3
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'ubuntu3 (172.16.167.133)' can't be established.
ED25519 key fingerprint is SHA256:kT9JZ/VheFqnJ6JjAA7RTTRzpdFCJ0DE+SbAAYgeCLc.
This host key is known by the following other names/addresses:
    ~/.ssh/known_hosts:1: [hashed name]
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@ubuntu3's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'ubuntu3'"
and check to make sure that only the key(s) you wanted were added.

root@ubuntu1:~# 

然后在 ubuntu2 上,将公钥分发到 ubuntu1ubuntu3

代码语言:javascript
复制
ssh-copy-id ubuntu1
ssh-copy-id ubuntu3

最后在 ubuntu3 上,将公钥分发到 ubuntu1ubuntu2

代码语言:javascript
复制
ssh-copy-id ubuntu1
ssh-copy-id ubuntu2
2.2.1 报错问题
代码语言:javascript
复制
root@ubuntu1:~# ssh-copy-id ubuntu2
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

/usr/bin/ssh-copy-id: ERROR: /etc/ssh/ssh_config: line 54: Bad configuration option: permitrootlogin
ERROR: /etc/ssh/ssh_config: terminating, 1 bad configuration options

出现这个错误是因为 /etc/ssh/ssh_config 文件中包含无效的配置选项 PermitRootLogin。实际上,这个选项应该出现在 sshd_config 文件中,而不是 ssh_config 文件中。ssh_config 是客户端配置文件,而 sshd_config 是服务器配置文件。

2.2.2 修复方法
  1. 编辑 /etc/ssh/ssh_config 文件:打开并编辑 /etc/ssh/ssh_config 文件,找到包含 PermitRootLogin 的行并删除它:
代码语言:javascript
复制
sudo vim /etc/ssh/ssh_config

找到并删除或注释掉这行:

代码语言:javascript
复制
PermitRootLogin yes
image.png
image.png

保存并退出文件。

  1. 编辑 /etc/ssh/sshd_config 文件:确保 PermitRootLogin 设置在服务器端配置文件 /etc/ssh/sshd_config 中正确配置:
代码语言:javascript
复制
sudo vim /etc/ssh/sshd_config

确保有如下配置:

代码语言:javascript
复制
PermitRootLogin yes
image.png
image.png

保存并退出文件,然后重启SSH服务,要在三台节点上都重新配置一下ssh:

代码语言:javascript
复制
sudo systemctl restart ssh
  1. **再次尝试 **ssh-copy-id:现在,你可以再次尝试使用 ssh-copy-id 命令将公钥复制到 ubuntu2
代码语言:javascript
复制
ssh-copy-id ubuntu2
image.png
image.png

3. 验证免密登录

在每台机器上测试是否可以免密登录到其他机器:

ubuntu1 上:
代码语言:javascript
复制
ssh ubuntu2
ssh ubuntu3
ubuntu2 上:
代码语言:javascript
复制
ssh ubuntu1
ssh ubuntu3
ubuntu3 上:
代码语言:javascript
复制
ssh ubuntu1
ssh ubuntu2
image.png
image.png
测试连接

可以在每台机器上使用以下命令测试连接:

代码语言:javascript
复制
ssh ubuntu1
ssh ubuntu2
ssh ubuntu3

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1qbsh1j7ymjul 通过上述步骤,成功为三台Ubuntu虚拟机配置域名映射和免密登录。这样,可以通过域名而不是IP地址访问每台机器,并且在每台机器之间进行免密SSH登录。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境背景
  • 1. 配置域名映射
  • 2. 配置免密登录
    • 2.1 在每台机器上生成SSH密钥对:
      • 2.2 将公钥分发到其他机器:
        • 2.2.1 报错问题
        • 2.2.2 修复方法
        • 测试连接
    • 3. 验证免密登录
    相关产品与服务
    云开发 CloudBase
    云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档