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

WSL(Ubuntu)与ADS登录凭证集成:实现无密码SSH执行Ansible剧本

解决WSL中Ansible通过企业ADS认证访问主机的问题

以下是几种适配企业网络环境的可行方案,按落地优先级排序:

1. 配置Kerberos认证对接ADS

企业域内的Linux主机通常支持Kerberos认证,直接在WSL中配置Kerberos即可实现无密码SSH:

  • 安装Kerberos工具:
    sudo apt update && sudo apt install krb5-user
    
  • 编辑/etc/krb5.conf,替换为企业ADS的域配置(示例):
    [libdefaults]
        default_realm = YOUR_COMPANY_DOMAIN.COM
        dns_lookup_kdc = true
        dns_lookup_realm = true
    
    [realms]
        YOUR_COMPANY_DOMAIN.COM = {
            kdc = ads-server.your-company-domain.com
            admin_server = ads-server.your-company-domain.com
        }
    
  • 获取Kerberos票据(输入ADS密码一次):
    kinit your-ads-username@YOUR_COMPANY_DOMAIN.COM
    
  • 在Ansible inventory或ansible.cfg中启用GSSAPI认证:
    # inventory示例
    [target_hosts]
    host1 ansible_host=192.168.1.10 ansible_ssh_user=your-ads-username@YOUR_COMPANY_DOMAIN.COM ansible_ssh_auth_method=gssapi-with-mic
    
    # ansible.cfg全局配置
    [defaults]
    ansible_ssh_auth_method = gssapi-with-mic
    

2. 用Ansible Vault存储ADS凭证做密码认证

如果Kerberos配置繁琐,可直接用密码认证,通过Vault避免明文泄露:

  • 创建加密的Vault文件存储ADS密码:
    ansible-vault create group_vars/all/vault.yml
    
    在文件中写入:
    vault_ansible_ssh_pass: your-ads-password
    
  • 在group_vars/all/main.yml中引用Vault变量:
    ansible_ssh_user: your-ads-username
    ansible_ssh_pass: "{{ vault_ansible_ssh_pass }}"
    
  • 运行剧本时指定Vault密码:
    ansible-playbook your-playbook.yml --ask-vault-pass
    

3. 借助宿主Windows的ADS凭证缓存

如果WSL的宿主Windows已登录企业域,可复用Windows的认证凭证:

  • 修改WSL的~/.ssh/config,让SSH调用Windows的ssh.exe:
    Host *
        ProxyCommand ssh.exe -W %h:%p
        User your-ads-username@YOUR_COMPANY_DOMAIN.COM
        GSSAPIAuthentication yes
        GSSAPIDelegateCredentials yes
    
    这样WSL的SSH会自动使用Windows已登录的ADS凭证,无需重复输入密码,Ansible直接调用该SSH配置即可。

4. 将WSL Ubuntu加入企业ADS域(需权限)

如果企业允许,直接把WSL系统加入域,实现系统级ADS认证:

  • 安装域加入工具:
    sudo apt install sssd-ad realmd adcli
    
  • 加入企业域(输入ADS密码):
    sudo realm join YOUR_COMPANY_DOMAIN.COM -U your-ads-username
    
  • 配置SSSD自动获取Kerberos票据,之后WSL中用ADS用户登录,SSH到域内主机无需额外认证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 10:01:47