SSH Client - Secure ShellFish
软件开发工具
免费 · App 内购买
Lightning fast SSH terminal with remote file access. No other app fuses your SSH servers and iOS devices as well as Secure ShellFish. Tap Get and see for yourself.
Terminal supports standard text editing gestures for selection, scrolling and copy/paste as well as custom gestures to send arrow keys and tabulator making shell entry and full screen editing with vim or emacs delightful. Bar above the keyboard makes it easy to type special keys and insert snippets.
Select and drag filenames out of the terminal as actual files and drag files from other apps into the terminal to upload. Use built-in tmux support to persist terminal sessions if you lose Internet access, pick existing sessions with thumbnails and Handoff sessions between devices.
Server file system is available in the Files app and recently accessed files and directories are cached to make them available when offline. Use apps like Textastic and iA Writer for a native editing experience working on your remote server files.
Upload files or entire directories from the share sheet with minimal friction as the last destination directory for each kind of file is remembered or automate file transfers in the Shortcuts app.
Connect to your Mac, Synology NAS and any other SSH server or create new Digital Ocean droplets right from the app.
Secure ShellFish is useful as a free app and paying pro users can disable ads in the terminal, upload through the Files app and configure unlimited number of servers.
更多 为什么购买之后,屏幕滚动就失效了?那我怎么去看终端的历史信息呢?
开发者回复 我不确定问题到底出在哪里,但我真的想帮忙。你应该能够用一个手指平移,滚动并查看终端历史。请给我发电子邮件:anders@secureshellfish.app,我将尽力提供帮助。如果你附上一张截图,显示事情的奇怪之处,我可以更快地帮助你。I'm not sure what exactly the problem is but I really want to help. You are supposed to be able to pan with a single finger to scroll and see the terminal history.Please email me at anders@secureshellfish.app and I will do my best to help. If you include a screenshot showing where things are strange I can help you faster.
为什么购买之后,屏幕滚动就失效了?那我怎么去看终端的历史信息呢?
我不确定问题到底出在哪里,但我真的想帮忙。你应该能够用一个手指平移,滚动并查看终端历史。请给我发电子邮件:anders@secureshellfish.app,我将尽力提供帮助。如果你附上一张截图,显示事情的奇怪之处,我可以更快地帮助你。I'm not sure what exactly the problem is but I really want to help. You are supposed to be able to pan with a single finger to scroll and see the terminal history.Please email me at anders@secureshellfish.app and I will do my best to help. If you include a screenshot showing where things are strange I can help you faster.
开发者回复 很抱歉,我需要用机器翻译来回答。我只懂英语和丹麦语。你可以在终端设置中启用 "位置持久性",使终端在后台运行时也能保持运行。或者你可以使用为每个服务器启用的新的tmux功能,使终端会话即使在应用程序断开时也能生存,因为它在后台。——————I apologize that I need to reply using machine translation. I only know English and Danish. You can enable “Location Persistence” in terminal settings to make the terminal stay running even as it is running in the background. Alternatively you can use the new tmux feature enabled for each server to make terminal sessions survive even when the app disconnects because it is in the background.
切到后台每到一分钟就断了,这个问题能解决么?
很抱歉,我需要用机器翻译来回答。我只懂英语和丹麦语。你可以在终端设置中启用 "位置持久性",使终端在后台运行时也能保持运行。或者你可以使用为每个服务器启用的新的tmux功能,使终端会话即使在应用程序断开时也能生存,因为它在后台。——————I apologize that I need to reply using machine translation. I only know English and Danish. You can enable “Location Persistence” in terminal settings to make the terminal stay running even as it is running in the background. Alternatively you can use the new tmux feature enabled for each server to make terminal sessions survive even when the app disconnects because it is in the background.
Selecting text in the terminal is now easier, with clearer selection highlighting when the server accepts mouse events.
Fixed a recently introduced bug that broke uploads from the share sheet.
When pasting images and files into the terminal, there is now an option to insert the path of the uploaded file.
More robust NFC/NFD Unicode normalization in Files app.
Fixes issue where opening tmux session as new tab from session picker blocked text input.
2026.15 2天前
Improvements to port forwarding showing duration + amount transferred in Settings and avoiding automatically starting a port forward alongside terminal when already using the same local or remote port.
Window > Move Tab to New Window menu action on iPad.
2026.14 4月21日
Password insertion change from last update has been reverted as it was still essential for some users.
Fixes crash that could happen when showing tmux session picker.
2026.13 4月11日
Improved how right-to-left text is rendered in terminal.
Password insertion from paste button is simplified to show biometrics and then confirm.
Useful control combinations added to snippet gallery and put as defaults on right keyboard bar. Remember that you can customize these button assignments by long-tapping them.
2026.12 4月9日
ShellFish has supported YubiKeys over NFC for a while, and now USB keys work too. Generate, export, and import them like any other keys - they just require the physical key to authenticate. Due to sandboxing restrictions, USB YubiKeys are accessed from a browser context, so your server needs to support webauthn-sk-ecdsa and the key application field must be localhost rather than ssh:
The context menu when starting terminals from the server list now has a submenu for picking an existing tmux session or creating a new one, instead of always connecting to the default. On iPad, hover the pointer over the session picker for a thumbnail popup.
2026.11 3月18日
Shift + Return works like Alt + Return to add newline without submitting prompt in Claude Code.
Improvements to Live Activity such that it correctly dismisses when terminal closes.
Control+Backspace will send ascii 8.
Improvements when using floating on-screen keyboard.
Fixes to Multipath TCP network mode.
2026.10 3月11日
Support for post-quantum key exchange algorithms: mlkem768x25519-sha256, mlkem768nistp256-sha256, mlkem1024nistp384-sha384.
Pro users can enable Live Activity from Settings > Advanced or by long-pressing settings button in terminal to follow the active terminal on the lock screen and in the Dynamic Island on supported devices.
Fixes issue from last update where some custom keys on keyboard bar would have empty keycaps despite being assigned.
2026.9 2月26日
'notify' and 'widget' commands support image payloads also delivered from shell to app using end-to-end encryption. Update Shell Integration scripts and run the commands without arguments for instructions.
Accept OSC 52 sequences with empty target for copying to clipboard.
Fixed issue where terminal would sometimes lose rightmost characters when resizing window.
Adjustments to background colors on keyboard bar in light mode to make it clearer when keys are pressed.
Fix issue where custom key configured for Paste would capture all keyboard bar touch events to the left of the Paste key.
2026.8 2月26日
Configure whether to use CoreFoundation, plain BSD or Multipath TCP for connections inside Settings > Advanced.
Fix to allow copying public key to clipboard directly from SSH key list.
2026.7 2月19日
Last update had improvements to handling of .ts.net hostnames allowing the Tailscale on-demand VPN time to start, but would also sometimes introduce a delay for .ts.net hostname if the VPN was already started. This has been improved to avoid delays.
New setting to allow manual certificate import on SSH keys which was removed when I added support for CAs. This is accessible from the gear menu when adding a new Certificate Authority and enabled by default if the app detects previous manual certificates.
2026.6 2月16日
Improved handling of .ts.net hostnames for better compatibility with Tailscale VPN.
This is especially useful with multi-address hostnames like
MyMac.local, my-mac.tail2faa9.ts.net
which first attempts a local network connection before falling back to Tailscale.
Context menu for the Paste key in the middle of the keyboard bar includes a Type Sentence mode, where you can compose text using autocomplete and other standard iOS editing features. Nothing is sent to the server until you press Return and leave the mode, making it particularly useful for typing natural language while editing in Emacs or Vim, or when writing instructions for Claude Code.
Running servers listed for Digital Ocean or Hetzner have button to start terminal whether or not a ShellFish configuration exists for each server.
Fixed issue where control sequences like ^X in snippets would be confused with literal caret followed by a letter.
2026.5 1月30日
Support for synchronized terminal output mode where server can ask for terminal updates to be deferred until all updates have been sent. This makes Claude Code updates nicer.
Certificate Authority feature uses in-app browser for authentication such that no browser tab is left open.
Error message is shown when Hetzner API key is wrong during Sign In.
Quick Terminal feature works correctly for terminal-only windows.
Fix issue where terminal word wrap was disabled when restore-cursor sequence was used before save-cursor which would often happen for Claude Code.
2026.4 1月16日
Improve Certificate Authority with keyId/principals in signing request and PKCE for OAuth.
Fix Unicode variation selectors taking up terminal cell width causing weirdly wrapped terminal lines.
2026.3 1月15日
Server groups now display more clearly in the Files app
Fixed an issue where favorite folders could be forgotten in the Files app
Help page now mentions Hetzner alongside Digital Ocean as a supported provider
2026.2 1月11日
Uploads and downloads are allowed to use additional memory and CPU to increase transfer speeds on fast networks.
2026.1 1月2日
Hetzner servers can be created and managed from Cloud Servers screen.
Drag enbries in server list to customize their order instead of the default alphabetical sorting. Previously, drag and drop could only move servers between groups.
Initial support for short-lived SSH certificates generated on-demand by a Certificate Authority with authentication through OpenID. Configure your CA from the key-plus button above the list of SSH Keys, enter the URL + root certificate fingerprint and authenticate through the browser.
You will then able to pick this CA instead of a SSH key when configuring the server and during authentication your existing unexpired certificate will be used or a new one will be issued and used requiring you to repeat browser-based approval. This browser-based approval isn't possible for connections coming from Files app that will fail if the current certificate has expired.
Includes changes from 2025.36
When approving the use of agent keys, you can configure the approval to last 5 minutes, 60 minutes, or while the connection is active.
Import of servers from CSV files started from the + button above the server list has been improved. When the ID field is assigned, existing servers are matched and updated rather than duplicated. A confirmation screen shows which servers will be added, updated, or left unchanged, along with which fields will change. There's a toggle to delete previously imported servers missing from the import file.
CSV server import has a field for public key, which can contain either the name of the public key, the full public key with or without comment, or the SHA256 fingerprint.
Improvements to terminal when using emoji and side-by-side sessions in tmux.
2025.38 2025/12/19
Insert delays into snippets.
Fix that tab title would get cleared when leaving vi.
Includes changes from 2025.36
When approving the use of agent keys, you can configure the approval to last 5 minutes, 60 minutes, or while the connection is active.
Import of servers from CSV files started from the + button above the server list has been improved. When the ID field is assigned, existing servers are matched and updated rather than duplicated. A confirmation screen shows which servers will be added, updated, or left unchanged, along with which fields will change. There's a toggle to delete previously imported servers missing from the import file.
CSV server import has a field for public key, which can contain either the name of the public key, the full public key with or without comment, or the SHA256 fingerprint.
Improvements to terminal when using emoji and side-by-side sessions in tmux.
2025.37 2025/12/11
When approving the use of agent keys, you can configure the approval to last 5 minutes, 60 minutes, or while the connection is active.
Import of servers from CSV files started from the + button above the server list has been improved. When the ID field is assigned, existing servers are matched and updated rather than duplicated. A confirmation screen shows which servers will be added, updated, or left unchanged, along with which fields will change. There's a toggle to delete previously imported servers missing from the import file.
CSV server import has a field for public key, which can contain either the name of the public key, the full public key with or without comment, or the SHA256 fingerprint.
Improvements to terminal when using emoji and side-by-side sessions in tmux.
Includes changes from 2025.33
Assign dismiss, paste, fn, esc, tab, ctrl, alt, shift or arrow keys to custom positions on keyboard bar.
Help screen has button to show list of page titles making it easier to find specific topics.
Improved documentation when calling 'widget' command without arguments. This change requires you to update Shell Integration script from Settings.
Fix when pasting from 1Password.
2025.36 2025/12/02
Fixes bug where video Playback from Files app failed for certain filenames.
Includes changes from 2025.33
Assign dismiss, paste, fn, esc, tab, ctrl, alt, shift or arrow keys to custom positions on keyboard bar.
Help screen has button to show list of page titles making it easier to find specific topics.
Improved documentation when calling 'widget' command without arguments. This change requires you to update Shell Integration script from Settings.
Fix when pasting from 1Password.
2025.35 2025/11/18
Playback from other apps resume when iOS 26 dictation stops.
Includes changes from 2025.33
Assign dismiss, paste, fn, esc, tab, ctrl, alt, shift or arrow keys to custom positions on keyboard bar.
Help screen has button to show list of page titles making it easier to find specific topics.
Improved documentation when calling 'widget' command without arguments. This change requires you to update Shell Integration script from Settings.
Fix when pasting from 1Password.
2025.34 2025/11/10
Fix that terminal sometimes wouldn't take up full window height on iPadOS 26
Improved HTTP Proxy configuration in Settings > Port Configuration with support for custom port numbers for SOCKS server.
Includes changes from 2025.33
Assign dismiss, paste, fn, esc, tab, ctrl, alt, shift or arrow keys to custom positions on keyboard bar.
Help screen has button to show list of page titles making it easier to find specific topics.
Improved documentation when calling 'widget' command without arguments. This change requires you to update Shell Integration script from Settings.
Fix when pasting from 1Password.
2025.33 2025/11/04
Assign dismiss, paste, fn, esc, tab, ctrl, alt, shift or arrow keys to custom positions on keyboard bar.
Fix such that keys on Fn keyboard work again.
Help screen has button to show list of page titles making it easier to find specific topics.
Improved documentation when calling 'widget' command without arguments. This change requires you to update Shell Integration script from Settings.
Fix when pasting from 1Password.
Includes improvements from 2025.29
Context menu when long-pressing the paste button on the keyboard bar now features integrated dictation on iOS 26. Speak naturally while the context menu is displayed and select the transcribed text once you're satisfied with the result. When keyboard bar isn't show this feature can be activated from the microphone button in the tab bar, such that you can dictate without the keyboard taking up terminal space.
Dictation language is configured in Settings or via the context menu of the settings button in the terminal tab bar. When using a new language for the first time, you may need to wait briefly for the language model to download, as all transcription occurs on-device.
Similar to dictation from the on-screen keyboard, this feature works best for natural language when editing in Emacs/Vim or composing instructions for Claude Code, and is less suited for issuing shell commands. However, this new context menu dictation delivers faster transcription with higher accuracy compared to the standard keyboard dictation method.
Long tap terminal minimize button and enter picture-in-picture mode without having to open terminal settings fully.
2025.32 2025/10/31
Improvements to iOS 26 dictation that would sometimes only include the last part.
Shell Integration has Fish support used when installing to servers where Fish is the default shell.
DECSLRM horisontal margins are respected which fixes issue when having side-by-side sessions in tmux.
Also includes improvements from 2025.29
Context menu when long-pressing the paste button on the keyboard bar now features integrated dictation on iOS 26. Speak naturally while the context menu is displayed and select the transcribed text once you're satisfied with the result. When keyboard bar isn't show this feature can be activated from the microphone button in the tab bar, such that you can dictate without the keyboard taking up terminal space.
Dictation language is configured in Settings or via the context menu of the settings button in the terminal tab bar. When using a new language for the first time, you may need to wait briefly for the language model to download, as all transcription occurs on-device.
Similar to dictation from the on-screen keyboard, this feature works best for natural language when editing in Emacs/Vim or composing instructions for Claude Code, and is less suited for issuing shell commands. However, this new context menu dictation delivers faster transcription with higher accuracy compared to the standard keyboard dictation method.
Long tap terminal minimize button and enter picture-in-picture mode without having to open terminal settings fully.
2025.31 2025/10/28
Terminal windows without toolbar look nicer on iPadOS 26.
Also includes improvements from 2025.29
Context menu when long-pressing the paste button on the keyboard bar now features integrated dictation on iOS 26. Speak naturally while the context menu is displayed and select the transcribed text once you're satisfied with the result. When keyboard bar isn't show this feature can be activated from the microphone button in the tab bar, such that you can dictate without the keyboard taking up terminal space.
Dictation language is configured in Settings or via the context menu of the settings button in the terminal tab bar. When using a new language for the first time, you may need to wait briefly for the language model to download, as all transcription occurs on-device.
Similar to dictation from the on-screen keyboard, this feature works best for natural language when editing in Emacs/Vim or composing instructions for Claude Code, and is less suited for issuing shell commands. However, this new context menu dictation delivers faster transcription with higher accuracy compared to the standard keyboard dictation method.
Long tap terminal minimize button and enter picture-in-picture mode without having to open terminal settings fully.
2025.30 2025/10/19
Context menu when long-pressing the paste button on the keyboard bar now features integrated dictation on iOS 26. Speak naturally while the context menu is displayed and select the transcribed text once you're satisfied with the result. When keyboard bar isn't show this feature can be activated from the microphone button in the tab bar, such that you can dictate without the keyboard taking up terminal space.
Dictation language is configured in Settings or via the context menu of the settings button in the terminal tab bar. When using a new language for the first time, you may need to wait briefly for the language model to download, as all transcription occurs on-device.
Similar to dictation from the on-screen keyboard, this feature works best for natural language when editing in Emacs/Vim or composing instructions for Claude Code, and is less suited for issuing shell commands. However, this new context menu dictation delivers faster transcription with higher accuracy compared to the standard keyboard dictation method.
Long tap terminal minimize button and enter picture-in-picture mode without having to open terminal settings fully.
2025.29 2025/10/08
Selecting text in the terminal is now easier, with clearer selection highlighting when the server accepts mouse events.
Fixed a recently introduced bug that broke uploads from the share sheet.
When pasting images and files into the terminal, there is now an option to insert the path of the uploaded file.
More robust NFC/NFD Unicode normalization in Files app.
Fixes issue where opening tmux session as new tab from session picker blocked text input.
更多 版本 2026.15 2天前
未与你关联的数据 开发者可能会收集以下数据,但数据不会关联你的身份: