ssh: connect to host 域名 port 22: Connection refused

确认目标主机的IP或域名是否正确

检查你的SSH配置~/.ssh/config):

Host my-vm
  HostName 域名  # 检查此处是否正确
  User 用户名
  IdentityFile ~/.ssh/id_rsa
  Port 22
  • 问题可能域名 无法解析到正确的IP(如 IP地址)。
  • 解决方案
    • 直接使用IP替换主机名:
      Host my-vm
        HostName IP地址  # 替换为实际IP
        User 用户名
        IdentityFile ~/.ssh/id_rsa
      
    • 或在本地 hosts 文件添加解析:
      • Windows:编辑 C:\Windows\System32\drivers\etc\hosts,添加:
        IP地址 域名
        
      • Linux/Mac:编辑 /etc/hosts,添加相同内容。

检查虚拟机SSH服务是否运行

在虚拟机内执行以下命令

  1. 确认SSH服务状态
    sudo systemctl status sshd   # 适用于大多数Linux系统(Ubuntu/Debian/CentOS)
    

检查防火墙是否放行SSH端口

在虚拟机内操作

  1. 查看防火墙规则
    sudo ufw status  # Ubuntu/Debian
    sudo firewall-cmd --list-all  # CentOS/RHEL
    
  2. 放行22端口
    sudo ufw allow 22  # Ubuntu/Debian
    sudo firewall-cmd --permanent --add-port=22/tcp  # CentOS/RHEL
    sudo firewall-cmd --reload
    

检查SSH服务配置

在虚拟机内编辑SSH配置文件

sudo nano /etc/ssh/sshd_config
  • 确保以下配置未被注释:
    Port 22
    ListenAddress 0.0.0.0
    PermitRootLogin prohibit-password  # 如果允许root登录,改为yes
    PasswordAuthentication yes          # 如果使用密码登录,临时开启
    PubkeyAuthentication yes           # 启用密钥认证
    
  • 重启SSH服务:
    sudo systemctl restart sshd
    

测试网络连通性和端口可达性

在本地计算机操作

  1. Ping测试

    ping ip地址
    
    • 若不通:检查虚拟机和本地是否在同一局域网,或虚拟机网络模式(如NAT/桥接)。
  2. Telnet测试22端口

    telnet IP地址
    
    • 若显示连接失败,可能是防火墙或网络问题。
    • 若成功,会显示SSH协议信息(如 SSH-2.0-OpenSSH_8.2p1)。

其他可能原因

虚拟机使用非22端口

  • 在SSH配置中指定端口:Port 2222
  • 本地网络限制
    • 关闭本地防火墙(如Windows Defender防火墙)临时测试。
  • VMware网络配置问题
    • 确保虚拟机网络适配器为 桥接模式NAT模式
    • 在VMware中检查虚拟网络编辑器,确认NAT设置中的端口转发(如需外网访问)。

最终连接命令

ssh -v 用户名@IP地址  # 添加 `-v` 参数查看详细日志
  • 根据错误日志调整配置(重点关注日志中的 Permission denied 或连接超时提示)。

流程图解

成功
失败
连接被拒绝
IP或域名是否正确?
修正IP/hosts文件
SSH服务是否运行?
安装并启动SSH服务
防火墙是否放行22端口?
配置防火墙规则
SSH配置是否正确?
修改sshd_config
检查网络连通性
连接成功
排查VMware/局域网设置

按上述步骤逐一排查,通常可解决问题。如果仍有问题,请提供 ssh -v 的完整输出日志。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值