SSH Search Provider Reborn
A gnome-shell extension which searches the ssh config and known_hosts file and provides the found ssh connections in your shell overview.
This is a fork
This project is a fork of the gnome-shell-extension-sshsearch project which has been unmaintained for a while.
/etc/ssh_configfiles (if they exist) and searches for host names.
/etc/ssh_known_hostsfiles (if they exist) and reads all host names (to use this feature you have to set the ssh setting "HashKnownHosts" to "no").
You can prepend a host name with a user name as in
SSH Search Provider Reborn comes with a preference panel which can be found from the "Tweaks" application or the Gnome Shell Extensions page.
The Arguments and Pass SSH command line as a single argument parameters are automatically filled if the picked Terminal Application is one of the following supported applications:
Gnome Terminal (
org.gnome.Terminal.desktop, the default)
If the configured Terminal Application's
.desktop file cannot be
found, the extension falls back to using the
org.gnome.desktop.applications.terminal.exec-args dconf keys. You
can set them up as described in the documentation for the extension
Assume the ~/.ssh/config file looks like:
Host desktop User user HostName 192.168.1.100 Host desktop1 User user HostName 192.168.1.101 host vserver User user Port 2222 HostName 188.8.131.52
and the ~/.ssh/known_hosts file looks like:
[184.108.40.206]:2222 ssh-rsa AAAAB... github.com,220.127.116.11 ssh-rsa AAAAB... user.webfactional.com,18.104.22.168 ssh-rsa AAAAB... 192.168.1.100 ssh-rsa AAAAB...
Here are some example searches and the search results:
search-term: user@ (all host names are in the search results)
SSH Search Provider Reborn is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see [http://www.gnu.org/licenses/].
Download / Install
Install directly from the Gnome Shell Extensions site.
Or download the zip file from the GitHub releases
page and unzip
directory (you may have to create the directory).
Building from source
- meson v0.44.0 or later.
Running the build
git clone https://github.com/F-i-f/ssh-search-provider
To install in your your gnome shell extensions' directory (~/.local/share/gnome-shell/extensions), run ninja:
ninja -C build install
To build the extension zip files, run:
ninja -C build extension.zip, the extension will be found under
April 16, 2019.
This is a complete overhaul of the extension.
Preference panel for configuring the preferred terminal application.
Supports literal IPv6 hosts.
Supports gnome-shell 3.28 (and potentially older versions) (GitHub Issue #3).
Fully handle terminal emulators other than Gnome Terminal. Sensible defaults are provided for: Gnome Terminal, Guake, RXVT, Tilix and XTerm, but any other terminal emulator can be used.
Also parse and monitor
/etc/ssh/ssh_config, if they exist.
If the any of the ssh configuration files is a symbolic link, the link target is also monitored for changes.
Added debug logging (configurable in preferences).
Internationalized, french translation.
The results now appear under the "SSH" Gnome Shell overview heading (used to be the name of the terminal emulator application).
~/.ssh/known_hosts(and related) entries containing ports (eg.
[localhost]:1234) are now displayed (and can be searched) by using the bracketed syntax. This allows for parsing ports in IPv6 literal addresses correctly.
The Terminal Emulator arguments must be fully specified for Gnome Terminal (the extension used to silently inject the
--commandswitch, not anymore).
Use Subset search when applicable to speed-up searching.
Almost complete under-the-hood re-implementation.
No more hidden dependencies on Gnome Terminal (GitHub Issue #2).
Don't drop/recreate settings and settings signals when the terminal emulator application is changed.
Ignore wildcards when parsing the
~/.ssh/config(and related) files.
Fix terminal emulator command line when launching an host of the form
Don't allow completing
@host(no user part).
Don't give completions until at least one letter of the host name is entered (otherwise
user@would display all possible hosts).
Icons are now the same in the overview search heading and the individual search results.
Avoid re-parsing the files needlessly (better filtering of Gio.file.monitor_file() events).
March 27, 2019.
- The host names read from
~/.ssh/configare not coerced to lower-case.
March 26, 2019.
ES6 / Gnome-Shell 3.32 compatibility (still compatible with 3.30 and lower).
Updated meson-gse to latest.
Minor doc updates.
March 24, 2019.
- First release, based upon the original.