如何ssh到虚拟机linux服务器

使用终端输入命令ssh 用户名@服务器IP -p 端口号(默认端口22可省略),按提示输入密码即可连接,需确保虚拟机已启动SSH服务并获取其IP地址

要通过SSH连接到Linux虚拟机服务器,需完成从环境准备到实际连接的多个步骤,以下是系统性的操作指南:

如何ssh到虚拟机linux服务器

前置准备:虚拟机与本地环境配置

步骤 操作说明 注意事项
虚拟机网络模式设置 在虚拟机管理软件(如VirtualBox、VMware)中,选择虚拟机的网络适配器模式:
桥接模式:虚拟机直接接入物理网络,可获得与主机同网段的IP地址。
NAT模式:通过主机共享网络,需配合端口转发使用。
仅主机模式:适用于隔离测试环境,需额外配置路由。
推荐使用桥接模式,便于直接通过IP访问,若需安全隔离,可选择NAT并配置端口映射。
检查虚拟机IP地址 登录虚拟机,执行ip addrifconfig查看网络接口的IPv4地址(如168.1.100)。 若IP动态变化,可设置静态IP或通过主机名解析(需配置/etc/hosts)。
安装SSH服务(若未预装) 根据Linux发行版执行命令:
Ubuntu/Debian: sudo apt update && sudo apt install openssh-server
CentOS/RHEL: sudo yum install openssh-server
Fedora: sudo dnf install openssh-server
确保安装后sshd服务已启动(sudo systemctl enable sshd)。

SSH连接配置与认证方式

生成SSH密钥(推荐)

在本地终端执行:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 默认保存路径为~/.ssh/id_rsa(私钥)和~/.ssh/id_rsa.pub(公钥)。
  • 按回车跳过密码短语设置(简化登录)。

将公钥发送至虚拟机

ssh-copy-id -i ~/.ssh/id_rsa.pub username@vm_ip

若虚拟机未启用密钥登录,需先在虚拟机上执行:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

密码认证(可选)

若无需密钥登录,直接使用:

如何ssh到虚拟机linux服务器

ssh username@vm_ip -p port

输入密码即可登录(默认端口22)。

本地客户端工具选择与连接

操作系统 工具 连接命令/步骤
Windows PuTTY/MobaXterm/Git Bash 打开工具,输入username@vm_ip
指定端口(非22时需手动填写)
点击连接并输入密码
macOS/Linux 终端 ssh username@vm_ip -p port
iOS/Android Protti (App) 输入主机、端口、用户名及密码

常见问题排查

连接失败的可能原因

现象 原因 解决方案
Connection refused SSH服务未启动/防火墙拦截 sudo systemctl start sshd + 检查防火墙规则
No route to host 网络不通/IP错误 ping vm_ip测试连通性
Permission denied 密钥权限错误/未添加公钥 chmod 600 ~/.ssh/authorized_keys

特殊场景处理

  • NAT模式下端口转发:在虚拟机软件中配置端口转发(如将主机2222端口转发到虚拟机的22端口),然后通过ssh -p 2222 localhost连接。
  • SELinux限制:若虚拟机为CentOS且开启SELinux,需临时设置为宽松模式:sudo setenforce 0

最佳实践与安全建议

  1. 禁用Root登录:编辑/etc/ssh/sshd_config,设置PermitRootLogin no,重启SSH服务。
  2. 限制IP访问:在sshd_config中添加AllowUsers usernameDenyUsers规则。
  3. 更换默认端口:修改sshd_config中的Port参数(如改为2222),并重启服务:sudo systemctl restart sshd

FAQs

Q1:为什么SSH连接时提示“Network error: connection timed out”?
A1:可能原因包括虚拟机IP错误、网络模式配置不当(如NAT模式下未设置端口转发)、宿主机防火墙拦截,解决方法:

  • 检查虚拟机IP是否正确(ip addr);
  • 尝试切换网络模式为桥接;
  • 暂时关闭宿主机防火墙(Windows: 控制面板 → 系统保护 → Windows Defender → 允许应用通过防火墙)。

Q2:如何使用SSH密钥认证时提示“Access denied”?
A2:常见原因及解决步骤:

如何ssh到虚拟机linux服务器

  1. 公钥未正确添加到虚拟机:执行cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  2. 密钥权限过大:确保私钥id_rsa权限为600,目录.ssh权限为700
  3. SSH服务未读取密钥文件:检查sshd_config中的AuthorizedKeysFile路径是否正确(默认`~/.ssh/

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/69107.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年7月19日 13:08
下一篇 2025年7月19日 13:12

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN