文章目录
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
,将PermitRootLogin
和PasswordAuthentication
分别设置为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了~~
【~~容器最好是一直在运行着,但凡重启或停止过,就需要重来一遍才可能连上】
版权归原作者 ღCauchyོꦿ࿐ 所有, 如有侵权,请联系我们删除。