当前位置:首页 > Linux > 正文

如何ssh到虚拟机linux服务器配置

安装OpenS SH,生成密钥,配置网络,使用ssh 用户名@IP -p端口连接

以下是通过SSH连接到虚拟机Linux服务器并进行配置的详细指南,涵盖从环境准备到安全优化的全流程:

前置条件与网络配置

  1. 虚拟机网络模式选择
    需根据实际需求设置虚拟机的网络连接方式,常见模式对比如下表:

    网络模式 特点 适用场景
    桥接模式 虚拟机直接接入物理网络,拥有独立IP地址 需与主机在同一局域网内访问
    NAT模式 通过主机共享网络,虚拟机IP与主机隔离 跨网段访问(需端口转发)
    仅主机模式 虚拟机与主机内部通信,不接触外部网络 完全隔离的测试环境

    注意:若需外部设备直接访问虚拟机,优先选择桥接模式。

  2. 获取虚拟机IP地址

    • 在虚拟机内执行命令 ip addr showifconfig,记录网卡(如eth0)对应的IPv4地址。

SSH服务安装与配置

  1. 确认SSH服务状态

    • 执行命令 systemctl status sshservice ssh status,若未安装则会提示找不到服务。
    • 若未安装,通过 sudo apt install openssh-server(Debian/Ubuntu)或 sudo yum install openssh-server(CentOS)安装。
  2. 配置SSH服务参数

    如何ssh到虚拟机linux服务器配置  第1张

    • 编辑配置文件 /etc/ssh/sshd_config,关键参数建议:
      • Port 22(可自定义非22端口提升安全性)
      • PermitRootLogin no(禁用root直接登录)
      • PasswordAuthentication no(强制使用密钥认证)
    • 修改后执行 sudo systemctl restart ssh 使配置生效。

SSH连接操作

  1. 基本连接命令

    ssh 用户名@服务器IP地址 -p 端口号
    • 示例:ssh ubuntu@192.168.1.100 -p 22
    • 输入密码后即可登录(若启用密钥认证则无需密码)。
  2. SSH密钥认证配置(推荐)

    • 生成密钥对(本地终端执行):
      ssh-keygen -t rsa -b 4096 -C "your_comment"

      按提示保存文件(默认路径:~/.ssh/id_rsa)。

    • 将公钥传输至虚拟机
      ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@服务器IP

      此操作将公钥写入虚拟机的 ~/.ssh/authorized_keys 文件。

    • 验证免密登录:直接执行 ssh 用户名@服务器IP,若无需密码即成功。

权限管理与安全优化

  1. 限制允许登录的用户

    • 编辑虚拟机的 /etc/ssh/sshd_config,添加:
      AllowUsers 用户名
    • 重启SSH服务后,仅指定用户可通过SSH登录。
  2. 禁用密码认证

    • sshd_config 中设置 PasswordAuthentication no,防止暴力破解。
  3. 防火墙配置

    • 若虚拟机启用防火墙(如ufw),需允许SSH端口:
      sudo ufw allow 22/tcp
    • 自定义端口(如2222)需替换上述命令中的数字。

SELinux安全策略(可选)

若系统启用SELinux,需执行以下命令放行SSH:

sudo setsebool -P ssh_sysadm_login 1

常见问题与解决

  1. 无法连接且端口正常

    • 检查虚拟机是否安装SSH服务(sudo apt install openssh-server)。
  2. 密钥认证失败

    • 确认虚拟机内 ~/.ssh 目录权限为 700,且 authorized_keys 文件权限为 600
      chmod 700 ~/.ssh
      chmod 600 ~/.ssh/authorized_keys

相关问答FAQs

  1. 问:如何修改SSH默认端口号?
    答:编辑 /etc/ssh/sshd_config 文件,将 Port 参数改为其他数字(如2222),重启SSH服务后需通过新端口连接,注意防火墙需同步开放新端口。

  2. 问:为什么SSH密钥认证后仍提示权限不足?
    答:可能是密钥文件权限过宽,需确保私钥文件(如~/.ssh/id_rsa)权限为 600,公钥文件(~/.ssh/authorized_keys)权限为 600,且 .ssh 目录权限为 700

S
0