summaryrefslogtreecommitdiffstats
path: root/src/man/sss_ssh_authorizedkeys.1.xml
blob: 2f4756d89177c3c838901b37b15b96c99d6fac47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
<reference>
<title>SSSD Manual pages</title>
<refentry>
    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="include/upstream.xml" />

    <refmeta>
        <refentrytitle>sss_ssh_authorizedkeys</refentrytitle>
        <manvolnum>1</manvolnum>
    </refmeta>

    <refnamediv id='name'>
        <refname>sss_ssh_authorizedkeys</refname>
        <refpurpose>get OpenSSH authorized keys</refpurpose>
    </refnamediv>

    <refsynopsisdiv id='synopsis'>
        <cmdsynopsis>
            <command>sss_ssh_authorizedkeys</command>
            <arg choice='opt'>
                <replaceable>options</replaceable>
            </arg>
            <arg choice='plain'><replaceable>USER</replaceable></arg>
        </cmdsynopsis>
    </refsynopsisdiv>

    <refsect1 id='description'>
        <title>DESCRIPTION</title>
        <para>
            <command>sss_ssh_authorizedkeys</command> acquires SSH
            public keys for user <replaceable>USER</replaceable> and
            outputs them in OpenSSH authorized_keys format (see the
            <quote>AUTHORIZED_KEYS FILE FORMAT</quote> section of
            <citerefentry><refentrytitle>sshd</refentrytitle>
            <manvolnum>8</manvolnum></citerefentry> for more
            information).
        </para>
        <para>
            <citerefentry><refentrytitle>sshd</refentrytitle>
            <manvolnum>8</manvolnum></citerefentry> can be configured
            to use <command>sss_ssh_authorizedkeys</command> for public
            key user authentication if it is compiled with support for
            <quote>AuthorizedKeysCommand</quote> option. Please refer
            to the <citerefentry>
            <refentrytitle>sshd_config</refentrytitle>
            <manvolnum>5</manvolnum></citerefentry> man page for more
            details about this option.
        </para>
        <para>
            If <quote>AuthorizedKeysCommand</quote> is supported,
            <citerefentry><refentrytitle>sshd</refentrytitle>
            <manvolnum>8</manvolnum></citerefentry> can be configured to
            use it by putting the following directives in <citerefentry>
            <refentrytitle>sshd_config</refentrytitle>
            <manvolnum>5</manvolnum></citerefentry>:
<programlisting>
  AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
  AuthorizedKeysCommandUser nobody
</programlisting>
        </para>

    <refsect2 id='cert_keys'>
        <title>KEYS FROM CERTIFICATES</title>
        <para>
            In addition to the public SSH keys for user
            <replaceable>USER</replaceable>
            <command>sss_ssh_authorizedkeys</command> can return public SSH keys
            derived from the public key of a X.509 certificate as well.
        </para>
        <para>
            To enable this the <quote>ssh_use_certificate_keys</quote> option
            must be set to true (default) in the [ssh] section of
            <filename>sssd.conf</filename>. If the user entry contains
            certificates (see <quote>ldap_user_certificate</quote> in
            <citerefentry><refentrytitle>sssd-ldap</refentrytitle>
            <manvolnum>5</manvolnum></citerefentry>
            for details) or there is a certificate in an override entry for the
            user (see
            <citerefentry><refentrytitle>sss_override</refentrytitle>
            <manvolnum>8</manvolnum></citerefentry>
            or <citerefentry><refentrytitle>sssd-ipa</refentrytitle>
            <manvolnum>5</manvolnum></citerefentry>
            for details) and the certificate is valid SSSD will extract the
            public key from the certificate and convert it into the format
            expected by sshd.
        </para>
        <para>
            Besides <quote>ssh_use_certificate_keys</quote> the options
            <itemizedlist>
                <listitem><para>ca_db</para></listitem>
                <listitem><para>p11_child_timeout</para></listitem>
                <listitem><para>certificate_verification</para></listitem>
            </itemizedlist>
            can be used to control how the certificates are validated (see
            <citerefentry><refentrytitle>sssd.conf</refentrytitle>
                        <manvolnum>5</manvolnum></citerefentry> for details).
        </para>
        <para>
            The validation is the benefit of using X.509 certificates instead of
            SSH keys directly because e.g. it gives a better control of the
            lifetime of the keys. When the ssh client is configured to use the
            private keys from a Smartcard with the help of a PKCS#11 shared
            library (see
            <citerefentry><refentrytitle>ssh</refentrytitle>
            <manvolnum>1</manvolnum></citerefentry>
            for details) it might be irritating that authentication is still
            working even if the related X.509 certificate on the Smartcard is
            already expired because neither <command>ssh</command> nor
            <command>sshd</command> will look at the certificate at all.
        </para>
        <para>
            It has to be noted that the derived public SSH key can still be
            added to the <filename>authorized_keys</filename> file of the user
            to bypass the certificate validation if the <command>sshd</command>
            configuration permits this.
        </para>
    </refsect2>
    </refsect1>

    <refsect1 id='options'>
        <title>OPTIONS</title>
        <variablelist remap='IP'>
            <varlistentry>
                <term>
                    <option>-d</option>,<option>--domain</option>
                    <replaceable>DOMAIN</replaceable>
                </term>
                <listitem>
                    <para>
                        Search for user public keys in SSSD domain <replaceable>DOMAIN</replaceable>.
                    </para>
                </listitem>
            </varlistentry>
            <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="include/param_help.xml" />
        </variablelist>
    </refsect1>

    <refsect1 id='exit_status'>
        <title>EXIT STATUS</title>
        <para>
            In case of success, an exit value of 0 is returned. Otherwise,
            1 is returned.
        </para>
    </refsect1>

    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="include/seealso.xml" />

</refentry>
</reference>