配置虚拟机防火墙
防火墙的一系列操作需要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
- 安装openssh-client:
sudo apt-get install openssh-client
- 安装openssh-server:
sudo apt-get install openssh-server
- 启动ssh-server:
sudo /etc/init.d/ssh restart
- 确认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
最后即可按照连接虚拟机的方法登陆了。