<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>SSH on OHTLY Blog</title>
    <link>https://blog.ohtly.com/tags/ssh/</link>
    <description>Recent content in SSH on OHTLY Blog</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sun, 14 Jun 2026 23:45:51 +0800</lastBuildDate>
    <atom:link href="https://blog.ohtly.com/tags/ssh/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Tailscale 快速组网：macOS &#43; Ubuntu 异地直连实战</title>
      <link>https://blog.ohtly.com/posts/2026-06-14-tailscale-ssh/</link>
      <pubDate>Sun, 14 Jun 2026 23:45:51 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-06-14-tailscale-ssh/</guid>
      <description>&lt;h2 id=&#34;场景&#34;&gt;&#xA;  场景&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%9c%ba%e6%99%af&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;家里一台 macOS，办公室局域网内一台 Ubuntu VM。以前要 SSH 访问办公室 VM，需要经过跳板机：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;macOS → 跳板机 → 办公室内网 → VM&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;步骤繁琐，依赖跳板机在线，而且 scp 传文件要走两跳，速度慢。&lt;/p&gt;&#xA;&lt;p&gt;目标：像在内网一样直接访问。&lt;/p&gt;&#xA;&lt;h2 id=&#34;注册&#34;&gt;&#xA;  注册&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%b3%a8%e5%86%8c&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;打开 &lt;a href=&#34;https://tailscale.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Tailscale 官网&lt;/a&gt;，用 GitHub 账号授权登录即可。登录后自动创建一个 Tailnet（你的私人网络）。&lt;/p&gt;&#xA;&lt;p&gt;免费版支持 3 个用户、100 台设备，个人使用完全够。&lt;/p&gt;&#xA;&lt;h2 id=&#34;macos-安装&#34;&gt;&#xA;  macOS 安装&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#macos-%e5%ae%89%e8%a3%85&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;brew install --cask tailscale&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;安装后启动，菜单栏出现 Tailscale 图标。点击登录，浏览器打开认证页面，选择 GitHub 账号授权，几秒钟就加入 Tailnet 了。&lt;/p&gt;&#xA;&lt;h2 id=&#34;ubuntu-server-安装&#34;&gt;&#xA;  Ubuntu Server 安装&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#ubuntu-server-%e5%ae%89%e8%a3%85&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -fsSL https://tailscale.com/install.sh | sudo sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo tailscale up&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;第二条命令会输出一个认证链接，浏览器打开，登录同个 GitHub 账号即可。&lt;/p&gt;</description>
    </item>
    <item>
      <title>macOS 下用函数快速启动 VS Code SSH Remote</title>
      <link>https://blog.ohtly.com/posts/2026-06-14-rcode/</link>
      <pubDate>Sun, 14 Jun 2026 19:59:37 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-06-14-rcode/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;&#xA;  背景&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e8%83%8c%e6%99%af&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;日常开发免不了频繁通过 VS Code 的 Remote SSH 连接远程服务器。每次都要敲：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;code --remote ssh-remote+some-host /home/user/project&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;路径要记、主机名要打、目录要拼，烦。&lt;/p&gt;&#xA;&lt;p&gt;能不能 &lt;code&gt;rcode my-server&lt;/code&gt; 就完事？&lt;/p&gt;&#xA;&lt;h2 id=&#34;其他方案对比&#34;&gt;&#xA;  其他方案对比&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%85%b6%e4%bb%96%e6%96%b9%e6%a1%88%e5%af%b9%e6%af%94&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;先看看除了敲命令，还有哪些方式打开 Remote SSH：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;方案&lt;/th&gt;&#xA;          &lt;th&gt;操作步骤&lt;/th&gt;&#xA;          &lt;th&gt;评价&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;VS Code 命令面板&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;F1&lt;/code&gt; → &amp;ldquo;Remote-SSH: Connect to Host&amp;hellip;&amp;rdquo; → 选主机 → &lt;code&gt;File &amp;gt; Open Folder&lt;/code&gt; → 选目录&lt;/td&gt;&#xA;          &lt;td&gt;点选四五次，慢&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;本地终端 &lt;code&gt;code --remote&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;code --remote ssh-remote+some-host /home/user/project&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;可用，但路径要自己记&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;macOS &lt;code&gt;open&lt;/code&gt; 打开 URL&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;open vscode://vscode-remote/ssh-remote+some-host/home/user/project&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;可脚本化，但路径写死&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Markdown/HTML 中放 VS Code 链接&lt;/td&gt;&#xA;          &lt;td&gt;在文档里写 &lt;code&gt;vscode://vscode-remote/ssh-remote+some-host/home/user/project&lt;/code&gt;，浏览器点击触发&lt;/td&gt;&#xA;          &lt;td&gt;适合文档入口，但仍然路径写死&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;终端别名/函数&lt;/td&gt;&#xA;          &lt;td&gt;本文方案&lt;/td&gt;&#xA;          &lt;td&gt;一行搞定&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;这里容易踩一个坑：&lt;code&gt;code&lt;/code&gt; 是本地 macOS 上的 VS Code CLI，不是远程服务器上的命令。已经 SSH 登录到远程机器后再敲 &lt;code&gt;code .&lt;/code&gt;，通常只会得到 &lt;code&gt;command not found&lt;/code&gt;。&lt;/p&gt;</description>
    </item>
    <item>
      <title>KaTrain 远程 KataGo SSH 隧道 Socket 残留问题</title>
      <link>https://blog.ohtly.com/posts/2026-06-14-katrain-remote-katago-ssh-socket/</link>
      <pubDate>Sun, 14 Jun 2026 14:24:22 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-06-14-katrain-remote-katago-ssh-socket/</guid>
      <description>&lt;p&gt;最近把 KaTrain 配成了远程 KataGo：本地 Mac 只运行 KaTrain 界面，真正的 KataGo 分析放到远端 GPU 服务器上跑。整体体验很好，但这次遇到一个很典型的问题：KaTrain 里远程引擎显示“崩溃”或“无法使用”。&lt;/p&gt;&#xA;&lt;p&gt;排查下来，服务器上的 GPU、Docker 镜像和模型文件都正常，真正的问题出在本地 SSH 隧道的 Unix socket 残留。&lt;/p&gt;&#xA;&lt;h2 id=&#34;远程-katago-的整体结构&#34;&gt;&#xA;  远程 KataGo 的整体结构&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e8%bf%9c%e7%a8%8b-katago-%e7%9a%84%e6%95%b4%e4%bd%93%e7%bb%93%e6%9e%84&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;我的配置大致是这样：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;KaTrain&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  └─ engine.altcommand&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       └─ katago-bridge-analysis&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            └─ /tmp/katago-tunnel.sock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                 └─ launchd 维护的 SSH 隧道&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                      └─ 远端服务器 localhost:5000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                           └─ katago-multiplexer.py&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                └─ Docker KataGo TensorRT 容器&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这里有几个关键点：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;KaTrain 不直接启动本地 KataGo，而是通过 &lt;code&gt;engine.altcommand&lt;/code&gt; 调用一个 bridge 脚本。&lt;/li&gt;&#xA;&lt;li&gt;bridge 脚本连接本地 Unix socket：&lt;code&gt;/tmp/katago-tunnel.sock&lt;/code&gt;。&lt;/li&gt;&#xA;&lt;li&gt;这个 socket 背后是 launchd 长期维护的 SSH 隧道。&lt;/li&gt;&#xA;&lt;li&gt;远端服务器上有一个 &lt;code&gt;katago-multiplexer.py&lt;/code&gt;，负责把多个客户端请求转发给 KataGo analysis 进程。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;也就是说，KaTrain App 关闭以后，SSH 隧道仍然可以由 launchd 继续维护。这样下一次打开 KaTrain 时，不需要重新建立完整链路。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
