解决ssh连接docker容器需要密码问题

问题

1.在创建docker容器是默认的用户是root,进入容器是没有密码的,但是当ssh进行连接是需要密码,因为root用户密码是系统随机生成的。想解决这个问题可以通过配置免密登录的方式进行。

创建容器

  1. docker run --gpus all -it -p 9000:22 -v /media/harddisk/data_sets:/home/data_sets --name 容器名称 镜像ID /bin/bash
  2. 解释:这是一条Docker指令,用于启动一个新的Docker容器,其含义如下:
  • docker run: 告诉Docker启动一个新的容器
  • –gpus all: 指定容器可以访问所有可用的GPU资源
  • -it: 分配一个伪终端并保持STDIN打开,以便您可以交互式地控制容器
  • -p 9000:22: 将主机的9000端口映射到容器的22端口,这样可以通过SSH连接到容器
  • -v /media/harddisk/data_sets:/home/data_sets: 将主机上的/media/harddisk/data_sets目录挂载到容器的/home/data_sets目录,这样可以在容器内访问主机上的数据集
  • –name 容器名称: 指定容器的名称,这里使用了中文字符作为容器名称
    镜像ID: 指定要启动的Docker镜像的ID
  • /bin/bash: 在容器内部启动一个bash shell,以便您可以交互式地执行命令

连接

ssh -p 9000 username@localhost
这是如何没配置免密会让你输入密码:

解决方案

1. 生成秘钥:
ssh-keygen
如果您已经有一个公钥和私钥,请跳过此步骤。(一般在家目录的.ssh文件夹里面)
2.配置容器秘钥

cd 到容器root目录,没有的的话就创建.ssh文件夹,在该文件家里面创建authorized_keys文件并复制共有秘钥。

cd /root
mkdir .ssh
vim authorized_keys (将宿主机中的秘钥给复制到这个文件里面按:wq保存退出)
3 . 再次进行连接
ssh -p port root@localhost
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值