cookbook 'ssh', '= 0.10.0'
ssh
(15) Versions
0.10.0
-
Follow17
LWRPs for managing SSH known_hosts and config files
cookbook 'ssh', '= 0.10.0', :supermarket
knife supermarket install ssh
knife supermarket download ssh
Chef SSH
Description
Provides 2 LWRPs to manage system-wide and per-user ssh_config and known_host files.
Usage
When using SSH with Chef deployments, it's crucial to not get any prompts for input. Adding entries to known_hosts files and better managing your per-connection configuration can help with this.
An important thing to note is that if you create a user during a chef run, be sure to reload OHAI data so that the new user will be in the node data. For instance:
ohai "reload_passwd" do
plugin "passwd"
end
The ssh cookbook bypasses this need somewhat by using ohai classes directly to discover your users' ssh paths. However
some of your cookbooks may not be as generous.
Resources and Providers
known_hosts
Actions
<table>
<thead>
<tr>
<th>Action</th><th>Description</th><th>Default</th>
</tr>
</thead>
<tbody>
<tr>
<td>add</td>
<td>Adds an entry for the given host to a known_hosts file</td>
<td>Yes</td>
</tr>
<tr>
<td>remove</td>
<td>Removes entries for a host from a known_hosts file</td>
<td> </td>
</tbody>
</table>
Attributes
<table>
<thead>
<tr>
<th>Attribute</th><th>Description</th><th>Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>host</td>
<td>
<b>Name attribute:</b> the FQDN for a host to add to a known_hosts file
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>hashed</td>
<td>A Boolean indicating if SSH is configured to use a hashed known_hosts file.
</td>
<td><code>true</code></td>
</tr>
<tr>
<td>key</td>
<td>A full line to add to the file, instead of performing a lookup for the host.
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>user</td>
<td>A username to add the known_hosts entry for. If unspecified, the known_host will be added system-wide. <b>Note:</b> if specified, the user
must already exist.
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>path</td>
<td>A full path to a known_hosts file. If used with the user attribute, this will take precedence over the path to a user's file, but the file will be created (if necessary) as that user.
</td>
<td><code>nil</code></td>
</tr>
</tbody>
</table>
Example
ssh_known_hosts "github.com" do
hashed true
user 'webapp'
end
config
Actions
<table>
<thead>
<tr>
<th>Action</th><th>Description</th><th>Default</th>
</tr>
</thead>
<tbody>
<tr>
<td>add</td>
<td>Adds an entry for the given host to a ssh_config file</td>
<td>Yes</td>
</tr>
<tr>
<td>remove</td>
<td>Removes entries for a host from a ssh_config file</td>
<td> </td>
</tbody>
</table>
Attributes
<table>
<thead>
<tr>
<th>Attribute</th><th>Description</th><th>Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>host</td>
<td>
<b>Name attribute:</b> the string to match when connecting to a host. This can be an IP, FQDN (github.com), or contain wildcards (*.prod.corp)
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>options</td>
<td>A hash containing the key-values to write for the host in
</td>
<td><code>true</code></td>
</tr>
<tr>
<td>user</td>
<td>A username to add the ssh_config entry for. If unspecified, the entry will be added system-wide. <b>Note:</b> if specified, the user
must already exist.
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>path</td>
<td>A full path to a ssh config file. If used with the user attribute, this will take precedence over the path to a user's file, but the file will be created (if necessary) as that user.
</td>
<td><code>nil</code></td>
</tr>
</tbody>
</table>
Example
ssh_config "github.com" do
options 'User' => 'git', 'IdentityFile' => '/var/apps/github_deploy_key'
user 'webapp'
end
Dependent cookbooks
This cookbook has no specified dependencies.
Contingent cookbooks
CHANGELOG for ssh
0.6.5
- Add an option for the ssh port number to known_hosts (Scott Arthur)
0.6.4
- Use OHAI to determine the user's $HOME (Tom Duckering)
0.6.3:
- Fixed libary to make /root instead of /home/root work (Vincent Gijsen)
- Correct default action for config resource (joelwurtz)
- Use the correct user and path for the remove action (roderik)
0.6.0:
- Initial release of ssh
Foodcritic Metric
0.10.0 failed this metric
FC023: Prefer conditional attributes: /tmp/cook/ab0e0b6148fcf83cdd7f88d7/ssh/providers/known_hosts.rb:37
0.10.0 failed this metric