
はじめに
Ansible を使って Ubuntu 26.04 の環境を管理しようとしたところ、become(特権昇格)を使った操作で次のエラーが発生しました。
Timeout (12s) waiting for privilege escalation prompt:
SSH 接続自体は問題なく通っていたので、最初は原因がわかりませんでした。 調査を進めると、Ubuntu 26.04(正確には Ubuntu 25.10)から採用された sudo-rs が原因であることがわかりました。
本記事では、発生した症状・原因・ワークアラウンドをまとめます。
確認環境
| 役割 | OS |
|---|---|
| Ansible ホスト(実行側) | Ubuntu 24.04.4 LTS |
| Ansible クライアント(対象) | Ubuntu 26.04 |
症状

become を使って Ansible を実行すると、次のようにタイムアウトエラーになります。
$ ansible all -i "192.168.1.253," -m ping -k -K
SSH password:
BECOME password[defaults to SSH password]:
192.168.1.253 | FAILED! => {
"msg": "Timeout (12s) waiting for privilege escalation prompt: "
-k(SSH パスワード)・-K(become パスワード)を省略して SSH 鍵認証のみで実行しても、接続自体が通りません。
$ ansible all -i "192.168.1.253," -m ping
192.168.1.253 | UNREACHABLE! => {
"changed": false,
"msg": "Data could not be sent to remote host \"192.168.1.253\". ...",
"unreachable": true
}
一方、become を無効にすると、正常に実行できます。
$ ansible all -i "192.168.1.253," -m ping -k -e "ansible_become=false"
SSH password:
192.168.1.253 | SUCCESS => {
"changed": false,
"ping": "pong"
}
つまり、become(sudo による特権昇格)を使った操作だけが失敗する状況でした。
原因

GitHub の Ansible リポジトリで同様の問題が議論されていました。
原因は Ubuntu 26.04(Ubuntu 25.10 から)で採用された sudo-rs です。
sudo-rs は Rust で書き直された sudo の代替実装です。 従来の sudo とコマンドインターフェースに差異があるため、Ansible の become プラグインがパスワードプロンプトを正しく認識できず、タイムアウトが発生します。
ワークアラウンド
GitHub Issue に記載されていたワークアラウンドを試したところ、問題を解消できました。
ansible.cfg に以下の設定を追加します。
[privilege_escalation]
become_exe = sudo.ws
Ubuntu 26.04 上で which sudo.ws を実行すると、/usr/bin/sudo.ws に存在することが確認できます。
$ which sudo.ws
/usr/bin/sudo.ws
この設定で /usr/bin/sudo.ws(旧来の sudo バイナリ)を明示的に指定することで、sudo-rs を回避できます。
設定後に再実行すると、正常に動作することを確認できました。
$ ansible all -i "192.168.1.253," -m ping -k -K
SSH password:
BECOME password[defaults to SSH password]:
192.168.1.253 | SUCCESS => {
"changed": false,
"ping": "pong"
}
おわりに
今回の問題をまとめると、次のようになります。
| 項目 | 内容 |
|---|---|
| 発生条件 | Ansible から Ubuntu 26.04(25.10 以降)に対して become を使う |
| 原因 | Ubuntu が sudo を sudo-rs に切り替えたため、Ansible がプロンプトを認識できない |
| 解決策 | ansible.cfg に become_exe = sudo.ws を追加して従来の sudo を指定する |
Ansible 側での正式な対応は Issue で議論中です。 Ubuntu 26.04 を Ansible で管理する場合は、正式対応がリリースされるまでの間、この設定を入れておくと安心かもしれません。

コメント