Hosts and connecting
Describes Hatoba 0.2.0.
The host list
The home tab shows the host list for the sidebar item that is selected: All Hosts, Favorites, Recent (hosts that have been connected before), a group, or a tag. A host is one saved SSH destination. Groups are flat (one level) and a host belongs to at most one group; tags are free text and a host can have several.
- The header has a search box (fuzzy match on name, address, user name and tags; Ctrl+Shift+K or ⌘⇧K focuses it), the sort button, and New Host. The search box also connects to hosts that are not saved; see Quick connect below.
- Each row shows the name,
user@address:port, the jump host if any, tags, and the time of the last connection. The dot is green when the host is connected or answers a TCP probe, grey otherwise. A host whose latest attempt in this launch failed shows Failed in red. - To connect: double-click a row, select it and press Enter, or click Connect. Up and down move the selection, and typing starts a search. The same host can be opened in several tabs.
- Right-click a row for its menu.
| English | 简体中文 | 日本語 |
|---|---|---|
| All Hosts | 全部主机 | すべてのホスト |
| Favorites | 收藏 | お気に入り |
| Recent | 最近连接 | 最近の接続 |
| Search hosts or ssh user@host | 搜索主机或 ssh user@host | ホストを検索、または ssh user@host |
| Sort by | 排序方式 | 並べ替え |
| Name | 名称 | 名前 |
| Address | 地址 | アドレス |
| New Host | 新建主机 | 新規ホスト |
| Tags | 标签 | タグ |
| Last Connected | 最近连接 | 最終接続 |
| Connect | 连接 | 接続 |
| Failed | 连接失败 | 接続失敗 |
| Edit | 编辑 | 編集 |
| Duplicate | 复制主机 | 複製 |
| Add to Favorites | 加入收藏 | お気に入りに追加 |
| Remove from Favorites | 取消收藏 | お気に入りから削除 |
| Copy Address | 复制地址 | アドレスをコピー |
| Copy Password | 复制密码 | パスワードをコピー |
| Delete… | 删除… | 削除… |
- Copy Password (hosts with a saved password) clears the clipboard after the delay in Settings → Security.
- Delete… asks for confirmation. With Cloud Sync on, the host is removed on the other devices too.
- A group’s right-click menu in the sidebar has Rename Group and Delete Group. Deleting a group moves its hosts to All Hosts; it does not delete them.
- The reachability dots can be turned off in Settings → General (Show host reachability). When on, Hatoba tries a TCP connection to the listed hosts every 60 seconds, with no login attempt.
| English | 简体中文 | 日本語 |
|---|---|---|
| Rename Group | 重命名分组 | グループ名を変更 |
| Delete Group | 删除分组 | グループを削除 |
| General | 通用 | 一般 |
| Show host reachability | 显示主机在线状态 | ホストの接続状態を表示 |
Quick connect
Typing user@host[:port] or an ssh command such as ssh -p 2222 [email protected] in the search box connects without saving a host. A Connect row for it heads the list and is selected, so Enter connects it; up and down move to the matching saved hosts. Plain words only search. If a saved host has the same address, port and user, that host is selected instead, so its key and jump host are used.
-pand-lwork;-v,-C,-t,-4and the like are ignored, and-A,-X,-Yconnect without forwarding. Other options (-i,-J,-L…) and remote commands show a row saying why it cannot connect; save a host for keys, jump hosts or forwards.- Without a user name, this computer’s user name is used, as with
ssh. - It connects through this device’s default proxy, if Settings → Proxies has one.
- Sign-in works like the
sshcommand: the SSH agent first, then the server’s own prompts, or a password dialog (also when the server’s prompts fail). The password is used once and never saved. Saved keys are not tried. A server that hangs up after rejecting too many agent keys is connected to again without the agent. The host key is checked as for any host (trust it on first use; it syncs). - The tab is titled
user@host. Port forwarding is not offered, and More actions has Save as Host…, which opens the host editor filled in with the address, port and user. Once the host is saved, Reconnect connects the tab as that host. - Nothing is saved as a host by itself. Targets that connected are kept as Recent on this device only (at most 8, no passwords, never synced). With the search box empty and focused, they show under it (Recent Quick Connections); while typing, matching ones show as extra Connect rows. The × button removes one.
| English | 简体中文 | 日本語 |
|---|---|---|
| Connect | 连接 | 接続 |
| Not saved | 未保存 | 未保存 |
| Recent | 最近 | 最近 |
| Recent Quick Connections | 快速连接记录 | 最近のクイック接続 |
| Remove from Recent | 从记录中移除 | 履歴から削除 |
| Save as Host… | 保存为主机… | ホストとして保存… |
| Username | 用户名 | ユーザー名 |
Import from ~/.ssh/config
When the vault has no hosts yet, the empty host list offers Import SSH Config. It reads ~/.ssh/config (on Windows %USERPROFILE%\.ssh\config), lists the Host entries, and imports the ones you tick. Entries whose name already exists are unticked and marked Already exists. A ProxyJump is kept when its first hop names a host that exists in Hatoba (otherwise the import warns). ProxyCommand is not imported: the entry shows ProxyCommand not imported, the import warns, and the host connects without it until a proxy or jump host is set. SetEnv becomes the host’s environment variables: the first SetEnv line that applies counts, as in OpenSSH, and a variable Hatoba can’t use (see Environment variables below) is left out with a warning. SendEnv is not imported. The button is not shown once the vault has hosts, so import before adding hosts, or add hosts by hand. Importing PuTTY sessions is not supported.
Entries show their IdentityFile (struck through if missing). Only the checkbox under the list (off by default), which lists the files, imports private keys into the encrypted vault; passphrase-protected ones are skipped. Otherwise hosts use Ask Each Time.
| English | 简体中文 | 日本語 |
|---|---|---|
| Import SSH Config | 从 SSH 配置导入 | SSH 設定からインポート |
| Select All | 全选 | すべて選択 |
| Select None | 全不选 | 選択解除 |
| Already exists | 已存在 | 登録済み |
| ProxyCommand not imported | 不导入 ProxyCommand | ProxyCommand は取り込みません |
The host editor
New Host, Edit in the row menu, or Edit Host (in a terminal tab’s More actions menu, or on the connection-failed card) opens the editor on the home tab. Save (or Ctrl+S, or Enter in a text field) saves, Cancel or the back arrow leaves, and Esc leaves an untouched form. The star in the header toggles the favorite. The address is required (it is the default name), and the port must be 1 to 65535.
| English | 简体中文 | 日本語 |
|---|---|---|
| Edit Host | 编辑主机 | ホストを編集 |
| General | 基本信息 | 基本情報 |
| Port | 端口 | ポート |
| Username | 用户名 | ユーザー名 |
| Authentication | 认证 | 認証 |
| Method | 方式 | 方式 |
| Organization & Network | 组织与网络 | 整理とネットワーク |
| Group | 分组 | グループ |
| Jump Host | 跳板机 | 踏み台 |
| Proxy | 代理 | プロキシ |
| Port Forwarding | 端口转发 | ポートフォワーディング |
| Environment Variables | 环境变量 | 環境変数 |
| Notes | 备注 | メモ |
| AI Notes | AI 备注 | AI 向けメモ |
| Test Connection | 测试连接 | 接続テスト |
| Delete Host | 删除主机 | ホストを削除 |
| Save | 保存 | 保存 |
| Cancel | 取消 | キャンセル |
- Test Connection connects with the current form values (saved or not), authenticates, checks the host key (you may be asked to trust it), shows the latency, and disconnects. It does not save the host.
- Delete Host is at the bottom of the editor for an existing host.
- Notes are for you only. AI Notes go to the AI assistant in every request of a conversation on the host; see Custom instructions and host notes.
- Port Forwarding in the editor lists the host’s forwards; see Port forwarding. A new host must be saved before forwards can be added.
- Environment Variables are sent to the server when a terminal opens; see Environment variables below.
Authentication methods
Method chooses how Hatoba signs in:
| English | 简体中文 | 日本語 |
|---|---|---|
| Password | 密码 | パスワード |
| Key | 密钥 | 鍵 |
| Ask Each Time | 每次询问 | 毎回入力 |
| SSH Agent | SSH Agent | SSH Agent |
| Saved | 已保存 | 保存済み |
| Replace | 替换 | 置き換え |
| Keep Saved Password | 保留已保存的密码 | 保存済みのパスワードを使う |
| Choose a key… | 选择密钥… | 鍵を選択… |
| Manage Keys | 管理密钥库 | 鍵を管理 |
- Password: stored encrypted in the vault. After saving, the field shows Saved and the password can be replaced (Replace, Keep Saved Password) but never viewed.
- Key: choose a key from the Keys page (Choose a key…; Manage Keys opens the Keys page). RSA, Ed25519 and ECDSA keys work. If the key has a passphrase that was saved with it, it is used; otherwise Hatoba asks for the passphrase when connecting (Enter the key passphrase), and does not save it.
- Ask Each Time: Hatoba asks for the password at every connection and never saves it.
- SSH Agent: uses the keys in the system SSH agent. On Windows that is the OpenSSH Authentication Agent service (it must be running); on macOS and Linux it is the agent that
SSH_AUTH_SOCKpoints to. Pageant is not supported. - Servers that ask for a second factor (keyboard-interactive, such as a one-time code) show a dialog titled Additional verification required with a Verify button. This needs no setting.
- Deleting a key switches the hosts that used it to Ask Each Time.
Jump host
Jump Host (ProxyJump) routes the connection through another saved host. Pick it from the list; the list excludes the host itself, and a loop of jump hosts is rejected. A jump host can have its own jump host. Each hop uses its own saved settings, and a jump host must use a saved password, a key with its passphrase saved, or SSH Agent. Behind a jump host, the jump host’s own Proxy setting applies. The status bar of the tab shows “via” and the jump host’s name.
Proxy
Proxy sends the connection through a SOCKS5 or HTTP proxy. The proxy looks up the server’s name, so a name that resolves only on the proxy’s side works. The choices:
- Device default: the proxy chosen in Settings → Proxies on this device, or no proxy when none is chosen there. The picker names the proxy it stands for. New and imported hosts start with it.
- No proxy: always connect directly.
- A saved proxy, by name.
With a jump host, the jump host’s own choice applies and the picker is disabled. Quick connections use this device’s default. The reachability dots of the host list go through the same proxy as the connection. Manage Proxies opens Settings → Proxies, where proxies are added, edited and deleted (Settings). Deleting a proxy switches the hosts that named it to Device default. When the proxy of a host, or this device’s default, was deleted on another device, the picker shows Deleted proxy and connecting fails until another one is chosen.
| English | 简体中文 | 日本語 |
|---|---|---|
| Proxy | 代理 | プロキシ |
| Device default | 设备默认 | デバイスの既定 |
| No proxy | 不使用代理 | プロキシなし |
| Deleted proxy | 已删除的代理 | 削除されたプロキシ |
| Manage Proxies | 管理代理 | プロキシを管理 |
Environment variables
Environment Variables in the host editor lists NAME=value pairs, like SetEnv in OpenSSH. Add Variable adds a row and × removes one; they are saved with the host by Save and sync with it. When a terminal opens, Hatoba asks the server to set each one before the shell starts.
| English | 简体中文 | 日本語 |
|---|---|---|
| Environment Variables | 环境变量 | 環境変数 |
| Add Variable | 添加变量 | 変数を追加 |
- The server sets only the names its sshd
AcceptEnvsetting lists and ignores the rest; the shell still starts, without them. Many servers (Debian and Ubuntu by default) accept onlyLANGandLC_*. To use other names, the server’s administrator adds them toAcceptEnvin/etc/ssh/sshd_configand reloads sshd. Runningenvorecho $NAMEin the terminal shows what arrived. - Hatoba sends
LANG=C.UTF-8by default; a host’sLANGreplaces it.TERMsets the terminal type instead (xterm-256colorby default) and needs noAcceptEnv. - Only the terminal’s shell gets them. SFTP, the resource usage readout and the AI assistant’s commands run without them.
- A name uses letters, digits and
_, doesn’t start with a digit, is case-sensitive, and appears once per host. A value can’t contain a line break or another control character. A host can have at most 64 variables, 16 KB of names and values together.
Connecting, host keys and prompts
A connection opens a new terminal tab (orange dot while connecting). The connection attempt times out after 15 seconds. Dialogs that can appear:
| English | 简体中文 | 日本語 |
|---|---|---|
| Fingerprint | 指纹 | フィンガープリント |
| Trust and Connect | 信任并连接 | 信頼して接続 |
| Host key has changed | 主机指纹已改变 | ホストキーが変更されました |
| Trusted fingerprint | 已信任的指纹 | 信頼済みのフィンガープリント |
| Fingerprint received now | 现在收到的指纹 | 今回受信したフィンガープリント |
| Disconnect | 断开连接 | 切断 |
| Update Fingerprint and Connect | 更新指纹并连接 | フィンガープリントを更新して接続 |
| Additional verification required | 需要额外验证 | 追加の認証が必要です |
| Verify | 验证 | 認証 |
| Enter the key passphrase | 输入私钥口令 | 秘密鍵のパスフレーズを入力 |
| Key passphrase | 私钥口令 | 鍵のパスフレーズ |
- First connection to a server: compare the shown fingerprint with the administrator’s, then Trust and Connect (saved to the vault and synced) or Cancel.
- New host key for … appears when a hop offers none of the key types saved for it, and Host key has changed blocks a saved type’s changed key (Disconnect is the default). See Troubleshooting: SSH connections for both.
- Ask Each Time hosts show a password prompt; Connect continues. A wrong key passphrase asks again.
When a connection fails or ends
- A failed attempt shows a card over the terminal titled “Can’t connect to” plus the host name. It gives the reason, a short code (for example ETIMEDOUT) with the time, and the buttons Copy Diagnostics, Ask AI (opens the AI panel with the diagnostics attached; nothing is sent until the user sends it, see Attachments to an AI message), Edit Host and Retry. Diagnostics hold the host, user, auth method, error and time, and no secrets. A quick connection has no Edit Host button. See Troubleshooting: SSH connections for each reason.
- A connection that ends later (the server closed it, the network dropped, keepalives went unanswered) shows the banner Connection closed with Reconnect. Hatoba never reconnects by itself. More actions has Reconnect and Disconnect too.
- Closing a tab (the × on the tab, middle-click, or Ctrl+Shift+W / ⌘W) ends its session.
- Locking keeps open sessions connected in the background unless Disconnect all sessions when locked is on (Settings → Security).
| English | 简体中文 | 日本語 |
|---|---|---|
| Copy Diagnostics | 复制诊断信息 | 診断情報をコピー |
| Ask AI | 询问 AI | AI に質問 |
| Retry | 重试 | 再試行 |
| Connection closed | 连接已断开 | 接続が切断されました |
| Reconnect | 重新连接 | 再接続 |
| More actions | 更多操作 | その他の操作 |
| Disconnect all sessions when locked | 锁定时断开所有会话 | ロック時にすべてのセッションを切断 |
| Security | 安全 | セキュリティ |