{ "module": "ssh-client", "version": "1", "tools": [ "ssh_client_hosts", "ssh_client_resolve", "ssh_client_check", "ssh_client_keys", "ssh_client_authorized", "ssh_client_revoke", "ssh_client_known_host", "ssh_client_test" ], "data": { "own": [ { "id": "ssh", "path": "${dir:ssh-dir}", "class": "valuable", "why": "the operator's keys and known hosts" } ] }, "resources": [ { "id": "ssh-dir", "type": "directory", "path": "${machine:account-home}/.ssh", "owner": "${machine:account}", "mode": "0700" }, { "id": "config-d", "type": "directory", "path": "${machine:account-home}/.ssh/config.d", "owner": "${machine:account}", "mode": "0700" }, { "id": "config", "type": "file", "path": "${machine:account-home}/.ssh/config", "owner": "${machine:account}", "mode": "0600", "into": "block", "at": "start", "template": "files/config" } ], "facts": { "mesh-hosts": { "path": ".ssh/config.d/00-mesh", "home": true, "template": "# Generated by the mesh. Do not edit — module ssh-client writes this file whenever a machine\n# joins, leaves or is renamed. ~/.ssh/config includes it first, so these hosts win over every\n# later line; a host of your own goes below the mesh's region in ~/.ssh/config.\n{{range .Machines}}{{if ne .Name $.Node}}\nHost {{.Name}} {{.FQDN}}\n HostName {{.FQDN}}\n{{if .Account}} User {{.Account}}\n{{end}}{{end}}{{end}}" } }, "build": { "artifacts": [ { "name": "tools", "kind": "bundle", "language": "go", "system": "arch", "from": "cmd/ssh-client-tools", "binary": "ssh-client-tools", "loads": [ "ssh-client-tools" ] }, { "name": "files", "kind": "archive", "from": "files" } ] } }