前期准备
虚拟机网络配置
-
网络模式选择:
虚拟机需配置为与物理机同网段的网络模式(如桥接模式或NAT模式),若为NAT模式,需通过端口转发或固定IP分配确保可访问性。- 桥接模式:虚拟机直接加入物理网络,需分配与物理机同网段的IP(如物理机IP为
168.1.X
,虚拟机设为168.1.Y
)。 - NAT模式:需依赖虚拟NAT网关,可通过
ifconfig
或ip addr
查看虚拟机IP(通常为0.2.X
或168.X.X
)。
- 桥接模式:虚拟机直接加入物理网络,需分配与物理机同网段的IP(如物理机IP为
-
检查网络连通性:
在虚拟机内执行以下命令,测试与物理机的网络连接:ping <物理机IP> # 测试反向连通性 ping 8.8.8.8 # 测试外部网络访问
确保SSH服务运行
-
检查SSH服务状态:
在虚拟机内执行:systemctl status sshd # 查看SSH服务状态
若未运行,则启动并设置为开机自启:
systemctl start sshd systemctl enable sshd
-
验证SSH端口:
默认端口为22
,可通过netstat -tuln | grep 22
确认监听状态。
防火墙配置
- 关闭或开放SSH端口:
- 若使用
firewalld
(CentOS/RHEL):firewall-cmd --permanent --add-service=ssh firewall-cmd --reload
- 若使用
ufw
(Ubuntu):ufw allow 22/tcp ufw reload
- 若防火墙未安装,可跳过此步。
- 若使用
获取虚拟机IP地址
场景 | 获取方式 |
---|---|
桥接模式(动态IP) | 在虚拟机内执行ip addr 或ifconfig ,查找inet 字段对应的IP地址。 |
NAT模式(动态IP) | 通过虚拟化平台(如VirtualBox、VMware)控制台查看分配的IP。 |
静态IP配置 | 编辑虚拟机网络配置文件(如/etc/network/interfaces 或/etc/sysconfig/network-scripts/ifcfg-eth0 ),手动指定IP。 |
配置SSH客户端
Windows系统
-
使用PuTTY:
- 下载PuTTY并运行,在“Host Name”中输入虚拟机IP,点击“Open”。
- 首次连接会提示接受主机指纹,确认后输入用户名和密码。
-
使用Windows OpenSSH(PowerShell):
ssh username@<虚拟机IP> # ssh root@192.168.1.100
Linux/Mac系统
- 直接使用终端内置的
ssh
命令:ssh username@<虚拟机IP>
SSH密钥登录(安全增强)
-
生成密钥对(在物理机上):
ssh-keygen -t rsa -b 4096 # 生成RSA密钥,按提示保存为~/.ssh/id_rsa
-
将公钥复制到虚拟机:
ssh-copy-id username@<虚拟机IP> # 自动将~/.ssh/id_rsa.pub复制到虚拟机的~/.ssh/authorized_keys
-
测试免密登录:
ssh username@<虚拟机IP> # 无需输入密码
连接测试与操作
-
首次连接:
- 若出现
Yes/No
提示,输入yes
以添加主机到已知列表。 - 输入用户名(如
root
或user
)和密码。
- 若出现
-
文件传输:
- 上传文件:
scp localfile username@<虚拟机IP>:/remote/path # 从物理机到虚拟机
- 下载文件:
scp username@<虚拟机IP>:/remote/file localpath # 从虚拟机到物理机
- 上传文件:
-
退出连接:
- 输入
exit
或按Ctrl+D
断开SSH会话。
- 输入
常见问题与解决方案
问题 | 原因 | 解决方法 |
---|---|---|
连接超时或拒绝 | IP错误、SSH服务未启动、防火墙阻挡 | 检查虚拟机IP、执行systemctl start sshd 、开放防火墙端口22 |
权限不足(Permission denied) | 用户无权限或密钥配置错误 | 检查/etc/ssh/sshd_config 中的PermitRootLogin ,或确保公钥写入authorized_keys |
端口被占用 | 非默认SSH端口或端口冲突 | 修改虚拟机sshd_config 中的Port 参数,并重启SSH服务 |
FAQs
Q1:无法连接到虚拟机,如何解决?
- 检查步骤:
- 确认虚拟机IP与物理机处于同一网段或已配置端口转发。
- 在虚拟机内执行
systemctl status sshd
,确保服务运行中。 - 测试防火墙规则(如
firewall-cmd --list-all
或ufw status
)。 - 尝试用
telnet <虚拟机IP> 22
检测端口连通性。
Q2:如何配置SSH免密码登录?
- 步骤:
- 在物理机生成SSH密钥:
ssh-keygen
。 - 将公钥发送到虚拟机:
ssh-copy-id user@<虚拟机IP>
。 - 重启SSH服务以应用配置:
systemctl restart sshd
。
- 在物理机生成SSH密钥:
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/69170.html