用xargs让xray x25519 -i支持Linux管道 以私钥计算公钥

xray支持用x25519 -i带私钥来计算公钥。帮助信息如下:

ubuntu@ubuntu22:~$ xray help x25519
usage: xray x25519 [-i "private key (base64.RawURLEncoding)"]
Generate key pair for x25519 key exchange.
Random: xray x25519
From private key: xray x25519 -i "private key (base64.RawURLEncoding)"

实际使用起来,像是下面这样:

ubuntu@ubuntu22:~$ xray x25519 -i X23TSjifyqPQ-BVFdosjJqSz_i4O7pCFomPlkzX7DTM
Private key: WG3TSjifyqPQ-BVFdosjJqSz_i4O7pCFomPlkzX7DXM
Public key: 1wwKZV_IxO4W4wcGJ9dgzBMMaZ3mNOJZcy_MVVmC-1M

那么结合 上一篇 生成随机私钥的方法,像下面这样:

ubuntu@ubuntu22:~$ head -c 32 /dev/random | base64 -w 0 | tr '+/' '-_' | tr -d '='
90L0JJmD721jKRtVSVOqMQZQ6j8VFO2Hl168XfFzWyY

而当我们想使用Linux的管道来将上面的结合起来时,却遇到报错,像下面这样:

ubuntu@ubuntu22:~$ head -c 32 /dev/random | base64 -w 0 | tr '+/' '-_' | tr -d '=' | xray x25519 -i
flag needs an argument: -i
usage: xray x25519 [-i "private key (base64.RawURLEncoding)"]
Run 'xray help x25519' for details.
经过一番学习,感谢 yichya 的解答 https://github.com/XTLS/Xray-core/issues/2140

我们可以使用xargs让不支持管道的命令来支持管道,像下面这样:

ubuntu@ubuntu22:~$ head -c 32 /dev/random | base64 -w 0 | tr '+/' '-_' | tr -d '=' | xargs xray x25519 -i
Private key: wEYTcPPXtO-mHGkYsRV0I1GWm9iEt_LJid3X0xmKz0g
Public key: lS8b_XQPS-kgCIcDy2seTakvM5_mgn_MWvm9q1x_AVs

 


评论

The Hot3 in Last 30 Days

ClouDNS .asia免费域名 托管到CloudFlare开CDN白嫖Websocket WS通道翻墙 / desec.io

无服务器 自建短链服务 Url-Shorten-Worker 完整的部署教程