☆ 问题描述
我在内网主机中,使用docker创建了多个虚拟机,我希望能通过我的公网ip服务器端口进行shell访问
★ 解决方案
我创建一个新的虚拟机为例
1. 创建并打开容器
docker run -itd --name test ubuntu
2. 进入容器
docker exec -it test /bin/bash
3. 设置容器密码
passwd
4. 安装ssh
apt-get update
apt-get install openssh-client
apt-get install openssh-server
5. 修改ssh配置
先安装vim
apt-get install vim
然后进入配置文件,不要cd…然后在vim,直接vim …
vim /etc/ssh/sshd_config
配置文件内容
修改其中的:
6. 重启ssh服务
service ssh restart #【ubuntu】
service sshd restart # 【centos】
7. 进行端口转发
#不发送任何命令,只用来建立连接。没有这个参数,会在 SSH 服务器打开一个 Shell。会在前台打开
ssh -R <服务器端口>:localhost:22 -N root@<服务器地址>
# 将SSH命令放到后台,如果想要停止需要杀死进程
ssh -R <服务器端口>:localhost:22 -Nf root@<服务器地址>
详细的转发命令可以看这里:SSH端口转发
8.使用shell工具进行连接
✅ 总结
- 注意不要输错单词
- shell链接的时候,ip和端口都是输入服务器的,但是密码输入的是虚拟机的。
- 腾讯云服务器可以看这个:https://cloud.tencent.com/developer/article/1760526?from=15425