如何ssh到虚拟机linux

通过SSH连接到Linux虚拟机需先确保虚拟机已启动SSH服务,获取其IP地址,在本地终端或SSH客户端输入ssh 用户名@IP,输入密码后即可登录。

前期准备

虚拟机网络配置

  • 网络模式选择
    虚拟机需配置为与物理机同网段的网络模式(如桥接模式或NAT模式),若为NAT模式,需通过端口转发固定IP分配确保可访问性。

    如何ssh到虚拟机linux

    • 桥接模式:虚拟机直接加入物理网络,需分配与物理机同网段的IP(如物理机IP为168.1.X,虚拟机设为168.1.Y)。
    • NAT模式:需依赖虚拟NAT网关,可通过ifconfigip addr查看虚拟机IP(通常为0.2.X168.X.X)。
  • 检查网络连通性
    在虚拟机内执行以下命令,测试与物理机的网络连接:

    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 addrifconfig,查找inet字段对应的IP地址。
NAT模式(动态IP) 通过虚拟化平台(如VirtualBox、VMware)控制台查看分配的IP。
静态IP配置 编辑虚拟机网络配置文件(如/etc/network/interfaces/etc/sysconfig/network-scripts/ifcfg-eth0),手动指定IP。

配置SSH客户端

Windows系统

  • 使用PuTTY

    如何ssh到虚拟机linux

    • 下载PuTTY并运行,在“Host Name”中输入虚拟机IP,点击“Open”。
    • 首次连接会提示接受主机指纹,确认后输入用户名和密码。
  • 使用Windows OpenSSH(PowerShell):

    ssh username@<虚拟机IP>    # ssh root@192.168.1.100

Linux/Mac系统

  • 直接使用终端内置的ssh命令:
    ssh username@<虚拟机IP>

SSH密钥登录(安全增强)

  1. 生成密钥对(在物理机上):

    ssh-keygen -t rsa -b 4096    # 生成RSA密钥,按提示保存为~/.ssh/id_rsa
  2. 将公钥复制到虚拟机

    ssh-copy-id username@<虚拟机IP>    # 自动将~/.ssh/id_rsa.pub复制到虚拟机的~/.ssh/authorized_keys
  3. 测试免密登录

    ssh username@<虚拟机IP>    # 无需输入密码

连接测试与操作

  1. 首次连接

    如何ssh到虚拟机linux

    • 若出现Yes/No提示,输入yes以添加主机到已知列表。
    • 输入用户名(如rootuser)和密码。
  2. 文件传输

    • 上传文件
      scp localfile username@<虚拟机IP>:/remote/path    # 从物理机到虚拟机
    • 下载文件
      scp username@<虚拟机IP>:/remote/file localpath    # 从虚拟机到物理机
  3. 退出连接

    • 输入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:无法连接到虚拟机,如何解决?

  • 检查步骤
    1. 确认虚拟机IP与物理机处于同一网段或已配置端口转发。
    2. 在虚拟机内执行systemctl status sshd,确保服务运行中。
    3. 测试防火墙规则(如firewall-cmd --list-allufw status)。
    4. 尝试用telnet <虚拟机IP> 22检测端口连通性。

Q2:如何配置SSH免密码登录?

  • 步骤
    1. 在物理机生成SSH密钥:ssh-keygen
    2. 将公钥发送到虚拟机:ssh-copy-id user@<虚拟机IP>
    3. 重启SSH服务以应用配置:systemctl restart sshd

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

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

相关推荐

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN