h1. SSHConfig This is a gem which allows you to programatically configure your ~/.ssh/config. It's a bit bad, but it works. h2. Config file Your new file to worry about is ~/.ssh/sshconfig. h2. ssh-update-config The @ssh-update-config@ command will generate the ~/.ssh/config file for you. The file will be overwritten. h2. Directives In the block you pass to a host method, any method becomes an sshconfig directive. It's method_missing_madness! h2. It's all ruby! h3. So write ruby! Methods, loops, variables; you name it. h3. $hostlist variable The grand list of hosts is stored in @$hostlist@. It's a @Hosts@ object. You can touch this. The @hosts {}@ method appends to this list. @$hostlist.host{}@ does the same as @hosts{host{}}@. h2. Building bc. gem build sshconfig.gemspec gem install --user-install sshconfig h2. Example There's an example file, take a look.