两台服务器上的两个docker容器之间配置ssh免密登录

本文详细描述了如何在两台服务器的容器中,通过SSH密钥对实现UCXGPURDMA间的无密码登录,包括安装OpenSSH、配置SSH端口、生成公钥私钥、设置authorized_keys以及创建config文件的过程。
摘要由CSDN通过智能技术生成

因为要在两台服务器的容器上使用ucx实现GPU的RDMA,所以需要两个容器之间ssh免密登录
步骤如下(所有步骤均在容器内部进行)

切换成root用户

  1. 在容器内部安装openssh:
    # apt-get install openssh-client openssh-server

  2. 编辑ssh的配置文件,更改ssh的端口:
    # vim /etc/ssh/sshd_config
    在最后一行加上
    Port 2233
    在这里插入图片描述

    为什么要有这步呢,主要是把容器内的ssh端口(改为2233)和容器外的ssh端口(默认是22)区分开,如果不改变容器内的ssh端口的话,之后ssh默认是连接到容器外部的。

  3. 重启ssh服务
    # service ssh restart

之后切换成非root用户(zcq)

  1. 生成ssh的公钥私钥:
    $ ssh-keygen -t ed25519
    其中-t ed25519是为了让生成的公钥长度短一点,不加也行。
  2. 配置authorized_keys文件
    进入~/.ssh目录,其中复制其中的id_ed25519.pub文件里的公钥的内容:
    在这里插入图片描述
    同样在~/.ssh目录中,创建authorized_keys文件,将公钥的内容复制到其中。然后去另一台服务器的容器中,将其的~/.ssh/id_ed25519.pub公钥的内容复制进当前容器的authorized_keys文件中。并在另一台服务器上同样创建authorized_keys文件,并复制公钥。
    即,这步完成之后,两台服务器的有同样的~/.ssh/authorized_keys文件,其中的内容相同,都分别是两台服务器的~/.ssh/id_ed25519.pub
    在这里插入图片描述
  3. 配置config文件
    在两个容器的~/.ssh目录创建config文件,内容如下:
Host r1d
  HostName 10.0.0.1
  User zcq
  Port 2233
Host r4d
  HostName 10.0.0.4
  User zcq
  Port 2233

解释一下:

Host r1d # r1d是自己取的名字
 HostName 10.0.0.1 #当前服务器的ip地址
 User zcq #当前容器的用户名
 Port 2233 # 之前配置的 /etc/ssh/sshd_config 的 Port
Host r4d # 另一台服务器的名字,可以任意取
 HostName 10.0.0.4 #另一台服务器的ip
 User zcq # 另一台服务器的用户名
 Port 2233 #同上

之后在r1d这个容器上,使用ssh r4d 就可以免密登录到r4d了(第一次登录按照提示输入个yes,之后就不用了)
\ |^_^| /

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值