summaryrefslogtreecommitdiff
path: root/man/man8/monkeysphere-authentication.8
blob: cfd13e7d5241dc6fc5b3b65de189b50e726c0c52 (plain)
  1. .TH MONKEYSPHERE-SERVER "8" "March 2009" "monkeysphere" "User Commands"
  2. .SH NAME
  3. monkeysphere\-authentication - Monkeysphere authentication admin tool.
  4. .SH SYNOPSIS
  5. .B monkeysphere\-authentication \fIsubcommand\fP [\fIargs\fP]
  6. .SH DESCRIPTION
  7. \fBMonkeysphere\fP is a framework to leverage the OpenPGP Web of Trust
  8. (WoT) for OpenSSH authentication. OpenPGP keys are tracked via GnuPG,
  9. and added to the authorized_keys and known_hosts files used by OpenSSH
  10. for connection authentication.
  11. \fBmonkeysphere\-authentication\fP is a Monkeysphere server admin
  12. utility for configuring SSH user authentication through the WoT.
  13. .SH SUBCOMMANDS
  14. \fBmonkeysphere\-authentication\fP takes various subcommands:
  15. .TP
  16. .B update\-users [ACCOUNT]...
  17. Rebuild the monkeysphere-controlled authorized_keys files. For each
  18. specified account, the user ID's listed in the account's
  19. authorized_user_ids file are processed. For each user ID, gpg will be
  20. queried for keys associated with that user ID, optionally querying a
  21. keyserver. If an acceptable key is found (see KEY ACCEPTABILITY in
  22. monkeysphere(7)), the key is added to the account's
  23. monkeysphere-controlled authorized_keys file. If the
  24. RAW_AUTHORIZED_KEYS variable is set, then a separate authorized_keys
  25. file (usually ~USER/.ssh/authorized_keys) is appended to the
  26. monkeysphere-controlled authorized_keys file. If no accounts are
  27. specified, then all accounts on the system are processed. `u' may be
  28. used in place of `update\-users'.
  29. .TP
  30. .B add\-id\-certifier KEYID|FILE
  31. Instruct system to trust user identity certifications made by KEYID.
  32. The key ID will be loaded from the keyserver. A file may be loaded
  33. instead of pulling the key from the keyserver by specifying the path
  34. to the file as the argument, or by specifying `\-' to load from stdin.
  35. Using the `\-n' or `\-\-domain' option allows you to indicate that you
  36. only trust the given KEYID to make identifications within a specific
  37. domain (e.g. "trust KEYID to certify user identities within the
  38. @example.org domain"). A certifier trust level can be specified with
  39. the `\-t' or `\-\-trust' option (possible values are `marginal' and
  40. `full' (default is `full')). A certifier trust depth can be specified
  41. with the `\-d' or `\-\-depth' option (default is 1). `c+' may be used in
  42. place of `add\-id\-certifier'.
  43. .TP
  44. .B remove\-id\-certifier KEYID
  45. Instruct system to ignore user identity certifications made by KEYID.
  46. `c\-' may be used in place of `remove\-id\-certifier'.
  47. .TP
  48. .B list\-id\-certifiers
  49. List key IDs trusted by the system to certify user identities. `c'
  50. may be used in place of `list\-id\-certifiers'.
  51. .TP
  52. .B help
  53. Output a brief usage summary. `h' or `?' may be used in place of
  54. `help'.
  55. .TP
  56. .B version
  57. show version number
  58. Other commands:
  59. .TP
  60. .B setup
  61. Setup the server in preparation for Monkeysphere user authentication.
  62. This command is idempotent and run automatically by the other
  63. commands, and should therefore not usually need to be run manually.
  64. `s' may be used in place of `setup'.
  65. .TP
  66. .B diagnostics
  67. Review the state of the server with respect to authentication. `d'
  68. may be used in place of `diagnostics'.
  69. .TP
  70. .B gpg\-cmd
  71. Execute a gpg command, as the monkeysphere user, on the monkeysphere
  72. authentication `sphere' keyring. This takes a single argument
  73. (i.e. multiple gpg arguments need to be quoted all together). Use
  74. this command with caution, as modifying the authentication sphere
  75. keyring can affect ssh user authentication.
  76. .SH SETUP USER AUTHENTICATION
  77. If the server will handle user authentication through
  78. monkeysphere-generated authorized_keys files, the server must be told
  79. which keys will act as identity certifiers. This is done with the
  80. \fBadd\-id\-certifier\fP command:
  81. $ monkeysphere\-authentication add\-id\-certifier KEYID
  82. where KEYID is the key ID of the server admin, or whoever's
  83. certifications should be acceptable to the system for the purposes of
  84. authenticating remote users. You can run this command multiple times
  85. to indicate that multiple certifiers are trusted. You may also
  86. specify a filename instead of a key ID, as long as the file contains a
  87. single OpenPGP public key. Certifiers can be removed with the
  88. \fBremove\-id\-certifier\fP command, and listed with the
  89. \fBlist\-id\-certifiers\fP command.
  90. Remote users will then be granted access to a local account based on
  91. the appropriately-signed and valid keys associated with user IDs
  92. listed in that account's authorized_user_ids file. By default, the
  93. authorized_user_ids file for an account is
  94. ~/.monkeysphere/authorized_user_ids. This can be changed in the
  95. monkeysphere\-authentication.conf file.
  96. The \fBupdate\-users\fP command can then be used to generate
  97. authorized_keys file for local accounts based on the authorized user
  98. IDs listed in the account's authorized_user_ids file:
  99. $ monkeysphere\-authentication update\-users USER
  100. Not specifying USER will cause all accounts on the system to updated.
  101. sshd can then use these monkeysphere generated authorized_keys files
  102. to grant access to user accounts for remote users. You must also tell
  103. sshd to look at the monkeysphere-generated authorized_keys file for
  104. user authentication by setting the following in the sshd_config:
  105. AuthorizedKeysFile /var/lib/monkeysphere/authentication/authorized_keys/%u
  106. It is recommended to add "monkeysphere\-authentication update-users"
  107. to a system crontab, so that user keys are kept up-to-date, and key
  108. revocations and expirations can be processed in a timely manner.
  109. .SH ENVIRONMENT
  110. The following environment variables will override those specified in
  111. the config file (defaults in parentheses):
  112. .TP
  113. MONKEYSPHERE_MONKEYSPHERE_USER
  114. User to control authentication keychain. (monkeysphere)
  115. .TP
  116. MONKEYSPHERE_LOG_LEVEL
  117. Set the log level. Can be SILENT, ERROR, INFO, VERBOSE, DEBUG, in
  118. increasing order of verbosity. (INFO)
  119. .TP
  120. MONKEYSPHERE_KEYSERVER
  121. OpenPGP keyserver to use. (pool.sks\-keyservers.net)
  122. .TP
  123. MONKEYSPHERE_AUTHORIZED_USER_IDS
  124. Path to user's authorized_user_ids file. %h gets replaced with the
  125. user's homedir, %u with the username.
  126. (%h/.monkeysphere/authorized_user_ids)
  127. .TP
  128. MONKEYSPHERE_RAW_AUTHORIZED_KEYS
  129. Path to regular ssh-style authorized_keys file to append to
  130. monkeysphere-generated authorized_keys. `none' means not to add any
  131. raw authorized_keys file. %h gets replaced with the user's homedir,
  132. %u with the username. (%h/.ssh/authorized_keys)
  133. .TP
  134. MONKEYSPHERE_PROMPT
  135. If set to `false', never prompt the user for confirmation. (true)
  136. .SH FILES
  137. .TP
  138. /etc/monkeysphere/monkeysphere\-authentication.conf
  139. System monkeysphere-authentication config file.
  140. .TP
  141. /var/lib/monkeysphere/authorized_keys/USER
  142. Monkeysphere-generated user authorized_keys files.
  143. .SH AUTHOR
  144. Written by:
  145. Jameson Rollins <jrollins@fifthhorseman.net>,
  146. Daniel Kahn Gillmor <dkg@fifthhorseman.net>,
  147. Matthew Goins <mjgoins@openflows.com>
  148. .SH SEE ALSO
  149. .BR monkeysphere (1),
  150. .BR monkeysphere\-host (8),
  151. .BR monkeysphere (7),
  152. .BR gpg (1),
  153. .BR ssh (1),
  154. .BR sshd (8)