0


【Vscode 远程连接 Docker 容器】

文章目录

1. 配置docker镜像

  • 在主机目录下创建一个 Dockerfile,注意文件名必须保持一致!!!(默认装了docker)
  • ubuntu:22.04 镜像
docker pull ubuntu:22.04
  • Dockerfile
FROM ubuntu:22.04# Update package list and install sudo
RUN apt-get update && \
    apt-get install -y sudo && \
    rm -rf /var/lib/apt/lists/*# Create a new user
RUN useradd -m cauchy && \
    echo 'cauchy:****'| chpasswd && \                          # 这里有user的密码,待会用于vscode的登入
    adduser cauchy sudo

# Set the working directory to /home/cauchy
WORKDIR /home/cauchy

# Set the user to cauchy
USER cauchy

# Start a shell session
CMD ["/bin/bash"]

  • 运行容器,映射端口:(主机7000:容器22)
docker built -t ubuntu:22.04.
docker run -itd -p 7000:22--name dockername ubuntu:22.04
  • 进入容器
docker attach dockername 

2. 安装 OpenSSH

  • 在 Docker 容器中安装 SSH 服务:
sudo apt-get install -y openssh-server
  • 启动 SSH 服务:
service ssh start
  • 修改 SSH 配置文件 /etc/ssh/sshd_config,将 PermitRootLoginPasswordAuthentication 分别设置为 yes
PermitRootLogin yes
PasswordAuthentication yes
  • 放开 22 端口
Port 22
  • 重启 SSH 服务:
service ssh restart

3. Vscode中安装 Remote-SSH 插件:

在这里插入图片描述


4. 配置连接信息

  • 在 VSCode 中按下 F1 键,输入 “Remote-SSH: Connect to Host…”,选择 “Add New SSH Host…”
  • 在弹出的对话框中填写以下信息:(括号内替换)- Host Name: hostname@IP -p Port- User Name: username- Password: password
  • 生成如下信息:(C:/用户/.ssh/config)- Name: 当前连接的名称(随意)。- IP:连接主机的IP地址,你的服务器IP。- UserName:容器内的用户名。- Port:主机映射的端口(上述即:7000)。
Host(Name)HostName(IP)User(UserName)Port(Port)

5. 免密登录

ssh-keygen

生成密钥后,将

id_rsa.pub

文件拷贝进docker容器内的

~/.ssh/authorized_keys

文件中即可。


【可能会遇到的问题】

  • 【之前连接成功过,后来就怎么都连不上去了】

先重启一下服务器的

ssh

服务:

sudoservicessh stop
sudoservicessh start

遇到的问题可能是因为:

这个错误提示意味着您之前连接到的主机的密钥已经发生了变化,可能是由于主机的操作系统或网络配置发生了更改。这可能是一种恶意攻击,也可能是您连接到的主机更换了新的密钥。

这里我遇到的问题是,主机更换了新的密钥,所以再次从vscode连接过去,公钥认证就不匹配了,所以不能在重新连入docker容器内。

删除

C/用户/.ssh/

目录下的

known_hosts

文件中,旧的公钥

[主机IP]:port

在这里插入图片描述

将这段直接删除即可,然后重新进行本文的连接操作。又可以愉快的玩docker了~~

【~~容器最好是一直在运行着,但凡重启或停止过,就需要重来一遍才可能连上】


标签: vscode docker ide

本文转载自: https://blog.csdn.net/qq_52678569/article/details/131253955
版权归原作者 ღCauchyོꦿ࿐ 所有, 如有侵权,请联系我们删除。

“【Vscode 远程连接 Docker 容器】”的评论:

还没有评论