You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Ansible自动化VPS/家庭实验室初始化:无sshpass时SSH配置受阻

解决Mac上Ansible初始化全新VPS的无sshpass连接方案

针对你遇到的Mac上无法安装sshpass导致Ansible初始连接失败的问题,以下是几个实用的解决办法:

方法一:手动推送公钥后再用Ansible

这是最直接的方案,先通过本地SSH手动将公钥传到VPS,之后Ansible就能无密码连接:

  1. 在本地终端执行命令,替换<VPS_IP>为你的实际IP:
ssh-copy-id -i ~/.ssh/homelab.pub root@<VPS_IP>
  1. 输入VPS的root密码,完成公钥推送
  2. 再运行你的Ansible playbook即可:
ansible-playbook playbooks/add_public_keys.yaml

方法二:使用Paramiko连接插件(无需sshpass)

Ansible支持Paramiko纯Python SSH库,不需要依赖系统的sshpass工具,配置步骤如下:

  1. 先安装Paramiko:
pip install paramiko
  1. 可以通过两种方式指定连接方式和密码:
    • 方式一:修改inventory文件
      在inventory中添加密码变量(如果担心明文安全,后续可以用ansible-vault加密):
      [homelab]
      <VPS_IP> ansible_password=你的root密码 ansible_connection=paramiko
      
    • 方式二:命令行临时指定
      直接在运行playbook时传递参数:
      ansible-playbook playbooks/add_public_keys.yaml --extra-vars "ansible_password=你的root密码" --connection=paramiko
      
  2. 运行playbook,此时会通过Paramiko连接,无需sshpass

方法三:启用VPS的密码登录后自动化(可选)

如果你的VPS默认禁用了root密码登录,先手动登录VPS修改/etc/ssh/sshd_config:

# 找到PasswordAuthentication项,改为yes
PasswordAuthentication yes

重启sshd服务:

systemctl restart sshd

之后再用上述两种方法完成初始化,完成后建议改回PasswordAuthentication no提升安全性

内容的提问来源于stack exchange,提问作者Ryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 05:40:26