惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
宝玉的分享
宝玉的分享
小众软件
小众软件
有赞技术团队
有赞技术团队
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MyScale Blog
MyScale Blog
Engineering at Meta
Engineering at Meta
Stack Overflow Blog
Stack Overflow Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MongoDB | Blog
MongoDB | Blog
WordPress大学
WordPress大学
J
Java Code Geeks
罗磊的独立博客
V
Visual Studio Blog
雷峰网
雷峰网
H
Help Net Security
T
The Blog of Author Tim Ferriss
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
F
Fortinet All Blogs

Hacker News

GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Bonsai 1-bit WebGPU - a Hugging Face Space by webml-community Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Retrofitting JIT Compilers into C Interpreters IPv6 – Google The Accursèd Alphabetical Clock Cybersecurity Looks Like Proof of Work Now Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent When moving fast, talking is the first thing to break Too much Discussion of the XOR swap trick – Heather Cafe Introduction to Spherical Harmonics for Graphics Programmers The Grand Line
GitHub - highpost/tailscale-macos-vm: Using Tailscale wit...
highpost · 2026-05-26 · via Hacker News

This repository demonstrates how to use OrbStack on macOS to provision an Ubuntu virtual machine (VM), and then add it to your tailnet.

Unlike minimal container runtimes that lack native kernel modules, OrbStack provides a fully capable Linux kernel environment. This allows Tailscale to leverage standard kernel networking (/dev/net/tun) rather than relying on userspace-networking workarounds.

OrbStack first spins up a temporary VM instance which allows cloud-init to pull its configuration from dev-server.yml and then stops the VM. Then OrbStack wakes up the pre-configured VM, adds it to your tailnet using an auth key and enables Tailscale SSH. You can then SSH to your VM from anywhere, without exposing host ports.

This example also demonstrates a macOS-specific method for securely storing your Tailscale auth key in Apple Keychain. Due to macOS security sandbox restrictions, the guest VM cannot directly execute security find-generic-password to pull secrets from the host. Instead, the credential must be injected from the host macOS environment during provisioning, as shown in run.sh.

macOS notes

Keychain limitations

Apple's Security Framework is designed around an interactive desktop login session. Remote SSH sessions are not the same as local GUI login sessions, so they don't usually have access to the user's unlocked login keychain. In practice, this means you can't remotely run the run.sh script to create an OrbStack VM.

DNS limitations

In a scenario where you're trying to use a Mac mini as a server hosting OrbStack VMs, and you want to be able to reach these with Tailscale SSH, you will need to run the open source Tailscale package on both the Mac mini and the VM. This works elegantly for connecting with SSH from a remote MacBook to your OrbStack VM.

But this can also lead to confusion about what macOS DNS can resolve. The easiest workaround is to use Tailscale DNS for name resolution and add a specific entry to your SSH config file for your VM.

Host dev-server
    HostName w.x.y.z
    User player1

Modify access controls

Before launching the VM, configure your Tailscale Access Control Lists (ACLs) to handle the automated registration and permissions.

Create a tag

Go to Access controls > Tags and define a server tag:

  • Tag name: myservers
  • Tag owners: your-email@example.com

Modify the Tailscale SSH access controls

Go to Access controls > Tailscale SSH and ensure your policy permits access to the tagged servers and specified users:

"ssh": [
	// Any tailnet member (autogroup:member) can SSH as a non-root user
	// to their own devices (autogroup:self).
	{
		"src":    ["autogroup:member"],
		"dst":    ["autogroup:self"],
		"users":  ["autogroup:nonroot", "player1", "player2"],
		"action": "accept",
	},
	// Any tailnet member (autogroup:member) can SSH as a non-root user
	// to any device tagged with myservers.
	{
		"src":    ["autogroup:member"],
		"dst":    ["tag:myservers"],
		"users":  ["autogroup:nonroot", "player1", "player2"],
		"action": "accept",
	},
	// Allow tagged servers to SSH into other tagged servers.
	{
		"src":    ["tag:myservers"],
		"dst":    ["tag:myservers"],
		"users":  ["autogroup:nonroot", "player1", "player2"],
		"action": "accept",
	},
],
  • Add your new tag ("myservers") to the Destination (dst) array.
  • Add the Linux usernames defined in your cloud-config ("player1", "player2") to the Destination users (users) array.
  • Change "action" from "check" to "accept" for seamless SSH access.

Create a Tailscale auth key

  1. Generate an auth key via the Tailscale Admin Keys panel with these configurations:
  • Reusable: Enabled
  • Pre-authorized: Enabled
  • Tags: Choose the newly created tag: tag:myservers
  1. Store the newly created auth key in Keychain:
./store-ts-key-keychain.sh

(Note: This creates an entry named tailscale-auth-key-dev-server in your Keychain).

Build and provision the VM

./build.sh

Start the VM and add it to your tailnet

./run.sh

Connect to the VM

Once run.sh finishes authenticating the machine, you can connect directly over your tailnet using Tailscale SSH or jump straight into the machine locally via OrbStack:

  • MagicDNS name: ssh player1@dev-server
  • built-in local SSH proxy: ssh player1@dev-server@orb
  • CLI: orb -m dev-server

Example: git

Once Tailscale SSH is setup correctly, it's simple to use git remotely. Let's assume that we have a git repo on dev-server. We can simply clone it directly without any extra authentication:

git clone https://github.com/player1/my_proj

Files

  • dev-server.yml: A cloud-init recipe that specifies environment configurations, system locales, default development packages, user access profiles and installation tasks for the Tailscale engine.
  • build.sh: Builds and provisions an Ubuntu 25.10 environment using the cloud.init configuration in dev-server.yml.
  • run.sh: Pulls the auth key from Keychain and brings up the Tailscale interface (tailscale up) inside the VM with SSH enabled.
  • cleanup.sh: Fully tears down the setup. It logs out the VM from your tailnet, destroys the OrbStack instance, and wipes the auth key from Keychain.
  • store-ts-key-keychain.sh: Copies the auth key from the system clipboard and stores it in Keychain.