aude-rc(7)
NAME
aude-rc —
远程控制一台机器上的
aude 会话
SYNOPSIS
aude |
--harness name
[--name name] |
aude |
pair |
aude |
devices |
aude |
revoke device |
--all |
DESCRIPTION
监听器提供这台机器上的每个会话。在这台机器或另一台机器上,iPhone
应用、Mac 应用和
‘aude attach’
都能使用这些会话。每个客户端都能列出会话、发送文本行,并看到相同的实录。第一个使用监听器的宿主或命令会启动
‘aude listen’
进程。最后一个宿主或命令结束
30
秒后,该进程退出。TERM、HUP
或 INT
信号也会停止它。
只有这台机器列入一台设备后,该设备才能附加。配对会列入设备。握手的每一端都证明自己的密钥。已列入的设备可以访问每个会话。它可以发送任务,也可以启动或移除子智能体。
当有已列入的设备或打开的配对窗口时,监听器还会在 127.0.0.1 上监听 port.json 中的端口。 aude-tunnel(7) 中的隧道让其他计算机上的设备能访问监听器。
OPTIONS
--namename- 会话的名称,默认为工作目录的名称。
aude把名称转换为小写。每个不是 ASCII 字母或数字的字符都变为连字符。相邻的连字符合并为一个。名称最多保留 32 个字符,两端没有连字符。如果结果为空,则使用 ‘aude’ 作为名称。
ATTACHING
当有已列入的设备时,
DIAGNOSTICS
中的可达信息给出这台机器的
URL。该 URL
不指定会话,也不含配对码。用手机扫描它的二维码。把它粘贴到
Mac
应用中,或者在另一台机器上把它交给
‘aude attach’
命令。该 URL
不是机密。对于该
URL,应用只更新已配对机器的地址。
PAIRING
‘aude pair’
会打开一个配对窗口,持续两分钟,有没有会话都可以。它打印一个
URL:
AUDE:<address>/<fingerprint>/<code>only
this computer can dial 127.0.0.1’
这一行。在支持颜色的终端上,aude
在 URL
上方打印二维码。配对码是机密。它只能使用一次。使用该
URL 时, ‘aude attach’
也会配对。它不登记机器。
在应用中,New 会打开一个用于输入 URL 的表单。打开应用的 URL 会填入该表单。表单的按钮是 Attach,当 URL 含有配对码时则是 Pair。
‘aude pair’
会一直等待,直到有设备配对。然后它打印
‘paired "<name>"
<fingerprint>’
这一行。如果配对窗口先关闭,它打印
‘pairing closed’
这一行。第二个
‘aude pair’
会关闭第一个配对窗口。因为
Mac
应用有自己的密钥,所以它也必须与这台
Mac 配对。
DEVICES
‘aude devices’
先打印这台机器的密钥,然后打印隧道,再打印每台已列入的设备:
<name> <fingerprint>REVOKE
‘aude revoke
device’
移除一台设备。请给出设备的名称,或其名称或指纹的开头部分。监听器写入
peers.json
后,会关闭该设备的链路。
‘aude revoke --all’
移除每台设备和这台机器的密钥。然后它生成一个新密钥。每台设备都必须重新配对。每个会话都继续运行。
THE KEY
第一个使用密钥的命令会生成密钥。该命令打印:
rc: made this device's key; no
machine lists it yetFILES
~/.aude/rc 的模式为 0700。只有你能写入其中的文件。每个文件最多 1 MiB。
- device.key
- 这台机器的密钥,一个 32 字节的普通文件,模式为 0600。
- peers.json
- 一个 JSON
对象,把每台已列入设备的完整指纹映射到它的名称:
配对或撤销会写入它。没有 aude 进程运行时,你也可以写入它。
{"<fingerprint>": "<name>"} - port.json
- 监听器第一次绑定的端口,即 8765 到 8864 中第一个空闲的端口。
- tunnel.json
- 隧道,其形式如 aude-tunnel(7) 所述。
- listener.socket
- 这台机器上的进程使用的监听器套接字,模式为 0600。
- listener.lock
- 监听器的锁。
EXIT STATUS
设备配对时,
‘aude pair’
的退出码为
0。配对窗口关闭或无法打开时,它的退出码为
8。拨号后没有监听器应答的命令,退出码为
8。 aude(1)
列出其他退出码。
EXAMPLES
配对手机:
$ aude pair <the QR code> AUDE:<name>$/<fingerprint>/<code> pairing window open for two minutes; it closes on the first pairing paired "my phone" 43MINEMOLU2QDYIRISB6HVGMMF6X
启动一个会话。它会启动监听器:
$ aude --harness claude devices reach this machine at AUDE:<name>$/<fingerprint>: my phone
在没有终端的情况下,让这台机器保持可访问,直到你停止该命令:
$ tail -f /dev/null | aude --harness
claude &在 systemd 下,保持 KillMode=control-group,这样每个 aude 进程都会按顺序停止。
移除手机:
$ aude devices this machine CIWVK7ZHMCBW6Z5BRVKUL6VJGK7Z tunnel trycloudflare my phone 43MINEMOLU2QDYIRISB6HVGMMF6X $ aude revoke "my phone" revoked "my phone" 43MINEMOLU2QDYIRISB6HVGMMF6X
DIAGNOSTICS
首次拨号即启动了监听器的进程会在标准错误上打印可达信息,但终端中的
‘aude attach’
除外:
- devices reach this machine at <url>: <names>
- 其后是该 URL
的二维码。设置了
NO_COLOR或由 ‘aude pair’ 打印这一行时除外。 - devices cannot reach this machine: 127.0.0.1:<port> is in use
- 其他错误会让这一行以
‘
could not be bound (errno <n>)’ 结尾。配对窗口打开时,监听器会再次绑定。释放该端口,或者移除 port.json 以使用另一个端口。 - devices cannot reach this machine: the <tunnel> tunnel <finding> — see aude-tunnel(7)
- rc could not read peers.json: <defect>
- 没有设备能附加或配对。
aude不会修改该文件。修复该文件,或者运行 ‘aude revoke --all’ 命令。devices、pair和revokedevice 的退出码为 6。
命令打印以下任一行后退出,退出码为 8,或为该条给出的退出码。宿主在第一个轮次之前也是如此:
- rc could not use this device's key file — <detail>
- 如果其他用户拥有该文件的任何权限,运行
‘
chmod 600 ~/.aude/rc/device.key’ 命令。要获得新的密钥和 URL,在没有 aude 进程运行时移除该文件。 - rc could not start: <detail>
- rc could not write <path>: <reason>
- 不会写入任何内容。如果该路径位于某个记录中,该记录的会话会结束。退出码为 6。
- another version of aude listens for this machine, for <names> — end them first
- 如果没有剩余会话,这一行会说明那个监听器何时结束。
- the listener holds another device key than device.key — end every aude session of this machine first
- could not attach — unauthorised: this machine does not list this device
- 应用也会这样提示。进行配对,或者在那台机器上没有
aude
进程运行时,把该设备加入它的
peers.json。
‘
pairing code rejected’ 表示配对码错误或已过期。 - could not attach — the handshake with <address> failed; another version of aude listens there, or something between changed its bytes
- 也可能是 aude 以外的程序在那里监听。重新配对没有帮助。
- peers.json changed while aude ran — it is read again when aude next starts
- 配对或撤销没有产生任何效果。退出码为 6。
SEE ALSO
aude(1), aude-team(7), aude-terminal(7), aude-tunnel(7), aude-wire(7), aude-workflow(7)
CAVEATS
只在你控制一台设备期间列入它。已列入的设备能以你的身份在这台机器上运行 shell 命令,并且事先不会询问你。
不要向任何人展示配对
URL。在它的配对窗口打开期间,任何读到它的人都能配对。配对之后,检查
‘aude devices’
的输出。
你的账号下的任何进程都能读取密钥。在每个平台上,该文件的任何副本(包括备份)都是这台设备。持有副本的人可以附加到列入了这台设备的每台机器,直到那台机器撤销它。
设备检查 URL
中的指纹。监听器检查它的对等方列表。
aude
不使用自己的证书。