使用ssh在本地环境(Windows)连接虚拟机以及其中的docker容器

配置虚拟机防火墙

防火墙的一系列操作需要root权限,默认是没有root密码的,所以首先需要设置root密码:

bash 复制代码
sudo passwd root

按提示完成root密码设置

切换到root账户

bash 复制代码
su root

启用22端口并重启防火墙

bash 复制代码
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --reload

或者直接关闭防火墙

bash 复制代码
systemctl stop firewalld.service

ssh连接虚拟机

查看IP地址

安装net-tools

首先安装查看ip地址的工具net-tools,已经有了可以不下载

bash 复制代码
sudo apt-get update
sudo apt-get install net-tools

通过ifconfig查看虚拟机ip地址
配置虚拟机SSH

  1. 安装openssh-client:sudo apt-get install openssh-client
  2. 安装openssh-server:sudo apt-get install openssh-server
  3. 启动ssh-server:sudo /etc/init.d/ssh restart
  4. 确认ssh-server工作正常:netstat -tpl (看到ssh表示工作正常)

登陆

此时便可以通过在主机cmd上通过命令通过普通用户

bash 复制代码
ssh username@ip -p port

进行登陆

如果要设置免密登陆请参考这篇https://blog.csdn.net/qq_57150526/article/details/134387937?spm=1001.2014.3001.5502

如果用root登陆则需要修改 /etc/ssh/sshd_config,在打开的文件中找到 PermitRootLogin将其改为PermitRootLogin yes,并取消注释,保存退出。

ssh连接docker容器

连接docker容器大体步骤与连接虚拟机类似。

在创建和运行docker容器时需要将容器的22端口映射到虚拟机的外部端口比如映射到20000

bash 复制代码
docker run -p 20000:22 --name ubuntu_test -itd ubuntu:latest

刚开始运行容器需要初始化容器的root密码,使用passwd命令按要求修改即可。并且完成连接虚拟机 中的各个操作即可

最后在进行免密登陆过程中~/.ssh/config中需要额外添加Port 20000

最后即可按照连接虚拟机的方法登陆了。

相关推荐
xbzb10 分钟前
Windows 启动故障修复知识整理:蓝屏 / 无限重启 / 盘符 X / 无 PE 盘
windows
jianpeng的工程笔记27 分钟前
WeKnora 搭建研发 EDA 知识库:Docker 部署、RAG 与 Wiki 实践
docker·知识库·eda·rag
我命由我1234539 分钟前
Mac 操作系统 - 一些使用记录
运维·windows·学习·系统安全·运维开发·mac·学习方法
ZeroNews内网穿透1 小时前
内网部署 Halo 建站,用 ZeroNews 免费内网穿透安全发布到公网(无公网 IP 也能 HTTPS 访问)
docker·https·内网穿透·nas·反向代理·halo·zeronews
Julien20041 小时前
Docker 容器技术的本质
运维·服务器·ssh·学习方法
九皇叔叔14 小时前
K8S 资源菜单
docker·容器·kubernetes·k8s
wdfk_prog15 小时前
ROS教程08:从 TransportTCP::connect() 追到 TCPROS Connection Header、序列化与 Socket 数据传输
运维·缓存·docker·容器·ros
kakakahahahaha16 小时前
Windows Steam 游戏存档在哪里?定位和恢复排查流程
windows·其他·电脑·笔记本电脑·内容运营·软件需求
Xy-unu16 小时前
Windows 开启外接显示器 HDR 后外接显示器无信号、无法扩展模式故障记录
windows
zoutao9816 小时前
Gitea Actions 自定义 Runner 镜像与自动化部署实战
ci/cd·docker·gitea