Remote Hosts

Provides actions that can be taken on computers.

Summary  
Available on macOS version 10.11, 10.12, 10.13, 10.14, 10.15, 11.6, 12.4
for Quicksilver build 4024, 4026, 4039

Remote Hosts

A Quicksilver plug-in for dealing with a large number of computers

Given a text file with a list of machines in it (either hostname, Fully Qualified Domain Name, or IP address), this plug-in indexes them as "remote host" objects and provides the following actions:

There is also a "Use as Remote Host" action that applies to text. If you type a hostname by hand, paste it, or pull it from an application using ⌘⎋ or ⌘G, this action will "convert" it to a remote host in Quicksilver so you can connect to it, etc.

Some of the above actions also provide "alternate" actions. Hit ⌘↩ instead of ↩ to run the alternate.

Action Alternate
SSH SSH as root
FTP Get FTP URL
HTTP Get HTTP URL
HTTPS Get HTTPS URL

The "Get XYZ URL" actions are useful in situations where you need to paste the URL to a remote machine, or want to open it in something other than the default application.

Selecting a host in Quicksilver and hitting → or / will provide the following information (if available):

Quicksilver treats these as strings, so you can use "Large Type", paste them into the current application, send them via IM or e-mail, etc.

The LOM address is itself another "remote host" in Quicksilver. With it selected, you can use one of the above actions to connect to it.

If you've defined a URL in the preferences that provides info for hosts, it will appear here.

Catalog Sources

The plug-in will scan ~/.hosts for a list of machines by default. (You can use any file. See below.) The file is treated as UTF-8. It should contain one host per line. The hostname or FQDN should be the first thing on each line, but other metadata is allowed (separated by a single space). A port can also be specified. An example might look like this:

server1.example.com
server2
server3.example.com ostype:linux
server4.example.com ostype:linux lom:10.1.2.3 label:test
server5.example.com:8080
appleserver.example.com icon:com.apple.xserve ostype:macosx
windows.example.com ostype:windows
somehost ostype:solaris
webhost1 groups:Web
webhost2 groups:Web

You may already have a file like this for completion in your shell. If you have existing metadata in this file, it shouldn't break anything, but it won't necessarily be useful in Quicksilver.

The plug-in scans for items on each host's line that look like this: key:value. All such data will be stored along with the host in Quicksilver's catalog, but there are currently only a few that will affect its behavior.

You can optionally pull hosts from ~/.ssh/known_hosts. There is a preset (disabled by default) under "Remote Hosts" in the Plugins section of the Catalog. If you want to get hosts from an arbitrary file, add a new custom catalog entry and choose "Remote Hosts" from the drop-down, then choose the file for the new entry.

There is also a preset named "SSH Config Hosts" that will read hosts from ~/.ssh/config. These hosts will be ignored if they were found in one of the other files (to preserve any metadata).

Preferences

Display Hostnames

Host Info URL

Use hostname in URL

Tips

After installation, you may want to check the precedence of the actions and make sure they're to your liking. The actions only apply to "remote hosts" in the catalog, so moving them up rather high on the list shouldn't interfere with other tasks. You may also want to disable some of the ones you never think you'll use.

For more than a few machines, you should use a script to generate a .hosts file from DNS, LDAP, a database, or some other authoritative source if possible, rather than managing it by hand. You might also schedule a job to update the file on a regular basis.

For hosts you want to frequently connect to at the same time, you can assign them to one or more groups in the scanned file. Any groups you define will be added to the catalog. You can search for them by name, or by name plus "Remote Host Group". You can use the SSH and Telnet actions to connect to all hosts in the group. Hitting → or / will reveal the group's members.

If you find yourself using "SSH as…" frequently, you may want to add something like this to your ~/.ssh/config:

Host server.domain
  User someuser

See the ssh_config(5) man page for details.

For iTerm users, the SSH and Telnet actions are intentionally not specific to Terminal. They simply send an address to the OS to be opened. Configure your system to open ssh:// and telnet:// locations using iTerm if you want to use that instead of Terminal.

Finally, don't forget the "comma trick". You can select multiple hosts using the comma or ⌘A, then connect to them all at once.

SSH Keys

You can optionally add your SSH public keys to the catalog by enabling the preset in your Catalog preferences. This makes it easy to paste the key to a remote machine, or into a message to a remote sysadmin.

If the key has a descriptive comment, that will be used as its name. Otherwise, the file name will be used.


This plug-in uses icons from the Open Icon Library.