diff options
Diffstat (limited to 'sshd.8')
-rw-r--r-- | sshd.8 | 388 |
1 files changed, 235 insertions, 153 deletions
@@ -9,7 +9,7 @@ | |||
9 | .\" | 9 | .\" |
10 | .\" Created: Sat Apr 22 21:55:14 1995 ylo | 10 | .\" Created: Sat Apr 22 21:55:14 1995 ylo |
11 | .\" | 11 | .\" |
12 | .\" $Id: sshd.8,v 1.14 2000/03/17 12:40:18 damien Exp $ | 12 | .\" $Id: sshd.8,v 1.15 2000/03/26 03:04:55 damien Exp $ |
13 | .\" | 13 | .\" |
14 | .Dd September 25, 1999 | 14 | .Dd September 25, 1999 |
15 | .Dt SSHD 8 | 15 | .Dt SSHD 8 |
@@ -33,39 +33,48 @@ | |||
33 | .Xr ssh 1 . | 33 | .Xr ssh 1 . |
34 | Together these programs replace rlogin and rsh programs, and | 34 | Together these programs replace rlogin and rsh programs, and |
35 | provide secure encrypted communications between two untrusted hosts | 35 | provide secure encrypted communications between two untrusted hosts |
36 | over an insecure network. The programs are intended to be as easy to | 36 | over an insecure network. |
37 | The programs are intended to be as easy to | ||
37 | install and use as possible. | 38 | install and use as possible. |
38 | .Pp | 39 | .Pp |
39 | .Nm | 40 | .Nm |
40 | is the daemon that listens for connections from clients. It is | 41 | is the daemon that listens for connections from clients. |
41 | normally started at boot from | 42 | It is normally started at boot from |
42 | .Pa /etc/rc . | 43 | .Pa /etc/rc . |
43 | It forks a new | 44 | It forks a new |
44 | daemon for each incoming connection. The forked daemons handle | 45 | daemon for each incoming connection. |
46 | The forked daemons handle | ||
45 | key exchange, encryption, authentication, command execution, | 47 | key exchange, encryption, authentication, command execution, |
46 | and data exchange. | 48 | and data exchange. |
47 | .Pp | 49 | .Pp |
48 | .Nm | 50 | .Nm |
49 | works as follows. Each host has a host-specific RSA key | 51 | works as follows. |
50 | (normally 1024 bits) used to identify the host. Additionally, when | 52 | Each host has a host-specific RSA key |
53 | (normally 1024 bits) used to identify the host. | ||
54 | Additionally, when | ||
51 | the daemon starts, it generates a server RSA key (normally 768 bits). | 55 | the daemon starts, it generates a server RSA key (normally 768 bits). |
52 | This key is normally regenerated every hour if it has been used, and | 56 | This key is normally regenerated every hour if it has been used, and |
53 | is never stored on disk. | 57 | is never stored on disk. |
54 | .Pp | 58 | .Pp |
55 | Whenever a client connects the daemon, the daemon sends its host | 59 | Whenever a client connects the daemon, the daemon sends its host |
56 | and server public keys to the client. The client compares the | 60 | and server public keys to the client. |
61 | The client compares the | ||
57 | host key against its own database to verify that it has not changed. | 62 | host key against its own database to verify that it has not changed. |
58 | The client then generates a 256 bit random number. It encrypts this | 63 | The client then generates a 256 bit random number. |
64 | It encrypts this | ||
59 | random number using both the host key and the server key, and sends | 65 | random number using both the host key and the server key, and sends |
60 | the encrypted number to the server. Both sides then start to use this | 66 | the encrypted number to the server. |
67 | Both sides then start to use this | ||
61 | random number as a session key which is used to encrypt all further | 68 | random number as a session key which is used to encrypt all further |
62 | communications in the session. The rest of the session is encrypted | 69 | communications in the session. |
70 | The rest of the session is encrypted | ||
63 | using a conventional cipher, currently Blowfish and 3DES, with 3DES | 71 | using a conventional cipher, currently Blowfish and 3DES, with 3DES |
64 | being is used by default. The client selects the encryption algorithm | 72 | being is used by default. |
73 | The client selects the encryption algorithm | ||
65 | to use from those offered by the server. | 74 | to use from those offered by the server. |
66 | .Pp | 75 | .Pp |
67 | Next, the server and the client enter an authentication dialog. The | 76 | Next, the server and the client enter an authentication dialog. |
68 | client tries to authenticate itself using | 77 | The client tries to authenticate itself using |
69 | .Pa .rhosts | 78 | .Pa .rhosts |
70 | authentication, | 79 | authentication, |
71 | .Pa .rhosts | 80 | .Pa .rhosts |
@@ -75,7 +84,8 @@ based authentication. | |||
75 | .Pp | 84 | .Pp |
76 | Rhosts authentication is normally disabled | 85 | Rhosts authentication is normally disabled |
77 | because it is fundamentally insecure, but can be enabled in the server | 86 | because it is fundamentally insecure, but can be enabled in the server |
78 | configuration file if desired. System security is not improved unless | 87 | configuration file if desired. |
88 | System security is not improved unless | ||
79 | .Xr rshd 8 , | 89 | .Xr rshd 8 , |
80 | .Xr rlogind 8 , | 90 | .Xr rlogind 8 , |
81 | .Xr rexecd 8 , | 91 | .Xr rexecd 8 , |
@@ -88,13 +98,15 @@ and | |||
88 | into that machine). | 98 | into that machine). |
89 | .Pp | 99 | .Pp |
90 | If the client successfully authenticates itself, a dialog for | 100 | If the client successfully authenticates itself, a dialog for |
91 | preparing the session is entered. At this time the client may request | 101 | preparing the session is entered. |
102 | At this time the client may request | ||
92 | things like allocating a pseudo-tty, forwarding X11 connections, | 103 | things like allocating a pseudo-tty, forwarding X11 connections, |
93 | forwarding TCP/IP connections, or forwarding the authentication agent | 104 | forwarding TCP/IP connections, or forwarding the authentication agent |
94 | connection over the secure channel. | 105 | connection over the secure channel. |
95 | .Pp | 106 | .Pp |
96 | Finally, the client either requests a shell or execution of a command. | 107 | Finally, the client either requests a shell or execution of a command. |
97 | The sides then enter session mode. In this mode, either side may send | 108 | The sides then enter session mode. |
109 | In this mode, either side may send | ||
98 | data at any time, and such data is forwarded to/from the shell or | 110 | data at any time, and such data is forwarded to/from the shell or |
99 | command on the server side, and the user terminal in the client side. | 111 | command on the server side, and the user terminal in the client side. |
100 | .Pp | 112 | .Pp |
@@ -104,7 +116,8 @@ the client, and both sides exit. | |||
104 | .Pp | 116 | .Pp |
105 | .Nm | 117 | .Nm |
106 | can be configured using command-line options or a configuration | 118 | can be configured using command-line options or a configuration |
107 | file. Command-line options override values specified in the | 119 | file. |
120 | Command-line options override values specified in the | ||
108 | configuration file. | 121 | configuration file. |
109 | .Pp | 122 | .Pp |
110 | .Nm | 123 | .Nm |
@@ -117,20 +130,23 @@ The options are as follows: | |||
117 | Specifies the number of bits in the server key (default 768). | 130 | Specifies the number of bits in the server key (default 768). |
118 | .Pp | 131 | .Pp |
119 | .It Fl d | 132 | .It Fl d |
120 | Debug mode. The server sends verbose debug output to the system | 133 | Debug mode. |
121 | log, and does not put itself in the background. The server also will | 134 | The server sends verbose debug output to the system |
122 | not fork and will only process one connection. This option is only | 135 | log, and does not put itself in the background. |
123 | intended for debugging for the server. | 136 | The server also will not fork and will only process one connection. |
137 | This option is only intended for debugging for the server. | ||
124 | .It Fl f Ar configuration_file | 138 | .It Fl f Ar configuration_file |
125 | Specifies the name of the configuration file. The default is | 139 | Specifies the name of the configuration file. |
140 | The default is | ||
126 | .Pa /etc/sshd_config . | 141 | .Pa /etc/sshd_config . |
127 | .Nm | 142 | .Nm |
128 | refuses to start if there is no configuration file. | 143 | refuses to start if there is no configuration file. |
129 | .It Fl g Ar login_grace_time | 144 | .It Fl g Ar login_grace_time |
130 | Gives the grace time for clients to authenticate themselves (default | 145 | Gives the grace time for clients to authenticate themselves (default |
131 | 300 seconds). If the client fails to authenticate the user within | 146 | 300 seconds). |
132 | this many seconds, the server disconnects and exits. A value of zero | 147 | If the client fails to authenticate the user within |
133 | indicates no limit. | 148 | this many seconds, the server disconnects and exits. |
149 | A value of zero indicates no limit. | ||
134 | .It Fl h Ar host_key_file | 150 | .It Fl h Ar host_key_file |
135 | Specifies the file from which the host key is read (default | 151 | Specifies the file from which the host key is read (default |
136 | .Pa /etc/ssh_host_key ) . | 152 | .Pa /etc/ssh_host_key ) . |
@@ -145,24 +161,28 @@ is being run from inetd. | |||
145 | .Nm | 161 | .Nm |
146 | is normally not run | 162 | is normally not run |
147 | from inetd because it needs to generate the server key before it can | 163 | from inetd because it needs to generate the server key before it can |
148 | respond to the client, and this may take tens of seconds. Clients | 164 | respond to the client, and this may take tens of seconds. |
149 | would have to wait too long if the key was regenerated every time. | 165 | Clients would have to wait too long if the key was regenerated every time. |
150 | However, with small key sizes (e.g., 512) using | 166 | However, with small key sizes (e.g., 512) using |
151 | .Nm | 167 | .Nm |
152 | from inetd may | 168 | from inetd may |
153 | be feasible. | 169 | be feasible. |
154 | .It Fl k Ar key_gen_time | 170 | .It Fl k Ar key_gen_time |
155 | Specifies how often the server key is regenerated (default 3600 | 171 | Specifies how often the server key is regenerated (default 3600 |
156 | seconds, or one hour). The motivation for regenerating the key fairly | 172 | seconds, or one hour). |
173 | The motivation for regenerating the key fairly | ||
157 | often is that the key is not stored anywhere, and after about an hour, | 174 | often is that the key is not stored anywhere, and after about an hour, |
158 | it becomes impossible to recover the key for decrypting intercepted | 175 | it becomes impossible to recover the key for decrypting intercepted |
159 | communications even if the machine is cracked into or physically | 176 | communications even if the machine is cracked into or physically |
160 | seized. A value of zero indicates that the key will never be regenerated. | 177 | seized. |
178 | A value of zero indicates that the key will never be regenerated. | ||
161 | .It Fl p Ar port | 179 | .It Fl p Ar port |
162 | Specifies the port on which the server listens for connections | 180 | Specifies the port on which the server listens for connections |
163 | (default 22). | 181 | (default 22). |
164 | .It Fl q | 182 | .It Fl q |
165 | Quiet mode. Nothing is sent to the system log. Normally the beginning, | 183 | Quiet mode. |
184 | Nothing is sent to the system log. | ||
185 | Normally the beginning, | ||
166 | authentication, and termination of each connection is logged. | 186 | authentication, and termination of each connection is logged. |
167 | .It Fl Q | 187 | .It Fl Q |
168 | Do not print an error message if RSA support is missing. | 188 | Do not print an error message if RSA support is missing. |
@@ -188,39 +208,43 @@ reads configuration data from | |||
188 | .Pa /etc/sshd_config | 208 | .Pa /etc/sshd_config |
189 | (or the file specified with | 209 | (or the file specified with |
190 | .Fl f | 210 | .Fl f |
191 | on the command line). The file | 211 | on the command line). |
192 | contains keyword-value pairs, one per line. Lines starting with | 212 | The file contains keyword-value pairs, one per line. |
213 | Lines starting with | ||
193 | .Ql # | 214 | .Ql # |
194 | and empty lines are interpreted as comments. | 215 | and empty lines are interpreted as comments. |
195 | .Pp | 216 | .Pp |
196 | The following keywords are possible. | 217 | The following keywords are possible. |
197 | .Bl -tag -width Ds | 218 | .Bl -tag -width Ds |
198 | .It Cm AFSTokenPassing | 219 | .It Cm AFSTokenPassing |
199 | Specifies whether an AFS token may be forwarded to the server. Default is | 220 | Specifies whether an AFS token may be forwarded to the server. |
221 | Default is | ||
200 | .Dq yes . | 222 | .Dq yes . |
201 | .It Cm AllowGroups | 223 | .It Cm AllowGroups |
202 | This keyword can be followed by a number of group names, separated | 224 | This keyword can be followed by a number of group names, separated |
203 | by spaces. If specified, login is allowed only for users whose primary | 225 | by spaces. |
226 | If specified, login is allowed only for users whose primary | ||
204 | group matches one of the patterns. | 227 | group matches one of the patterns. |
205 | .Ql \&* | 228 | .Ql \&* |
206 | and | 229 | and |
207 | .Ql ? | 230 | .Ql ? |
208 | can be used as | 231 | can be used as |
209 | wildcards in the patterns. Only group names are valid, a numerical group | 232 | wildcards in the patterns. |
210 | id isn't recognized. By default login is allowed regardless of | 233 | Only group names are valid, a numerical group ID isn't recognized. |
211 | the primary group. | 234 | By default login is allowed regardless of the primary group. |
212 | .Pp | 235 | .Pp |
213 | .It Cm AllowUsers | 236 | .It Cm AllowUsers |
214 | This keyword can be followed by a number of user names, separated | 237 | This keyword can be followed by a number of user names, separated |
215 | by spaces. If specified, login is allowed only for users names that | 238 | by spaces. |
239 | If specified, login is allowed only for users names that | ||
216 | match one of the patterns. | 240 | match one of the patterns. |
217 | .Ql \&* | 241 | .Ql \&* |
218 | and | 242 | and |
219 | .Ql ? | 243 | .Ql ? |
220 | can be used as | 244 | can be used as |
221 | wildcards in the patterns. Only user names are valid, a numerical user | 245 | wildcards in the patterns. |
222 | id isn't recognized. By default login is allowed regardless of | 246 | Only user names are valid, a numerical user ID isn't recognized. |
223 | the user name. | 247 | By default login is allowed regardless of the user name. |
224 | .Pp | 248 | .Pp |
225 | .It Cm CheckMail | 249 | .It Cm CheckMail |
226 | Specifies whether | 250 | Specifies whether |
@@ -230,27 +254,27 @@ The default is | |||
230 | .Dq no . | 254 | .Dq no . |
231 | .It Cm DenyGroups | 255 | .It Cm DenyGroups |
232 | This keyword can be followed by a number of group names, separated | 256 | This keyword can be followed by a number of group names, separated |
233 | by spaces. Users whose primary group matches one of the patterns | 257 | by spaces. |
258 | Users whose primary group matches one of the patterns | ||
234 | aren't allowed to log in. | 259 | aren't allowed to log in. |
235 | .Ql \&* | 260 | .Ql \&* |
236 | and | 261 | and |
237 | .Ql ? | 262 | .Ql ? |
238 | can be used as | 263 | can be used as |
239 | wildcards in the patterns. Only group names are valid, a numerical group | 264 | wildcards in the patterns. |
240 | id isn't recognized. By default login is allowed regardless of | 265 | Only group names are valid, a numerical group ID isn't recognized. |
241 | the primary group. | 266 | By default login is allowed regardless of the primary group. |
242 | .Pp | 267 | .Pp |
243 | .It Cm DenyUsers | 268 | .It Cm DenyUsers |
244 | This keyword can be followed by a number of user names, separated | 269 | This keyword can be followed by a number of user names, separated |
245 | by spaces. Login is disallowed for user names that match | 270 | by spaces. |
246 | one of the patterns. | 271 | Login is disallowed for user names that match one of the patterns. |
247 | .Ql \&* | 272 | .Ql \&* |
248 | and | 273 | and |
249 | .Ql ? | 274 | .Ql ? |
250 | can be used as | 275 | can be used as wildcards in the patterns. |
251 | wildcards in the patterns. Only user names are valid, a numerical user | 276 | Only user names are valid, a numerical user ID isn't recognized. |
252 | id isn't recognized. By default login is allowed regardless of | 277 | By default login is allowed regardless of the user name. |
253 | the user name. | ||
254 | .It Cm HostKey | 278 | .It Cm HostKey |
255 | Specifies the file containing the private host key (default | 279 | Specifies the file containing the private host key (default |
256 | .Pa /etc/ssh_host_key ) . | 280 | .Pa /etc/ssh_host_key ) . |
@@ -266,7 +290,8 @@ files will not be used in authentication. | |||
266 | .Pa /etc/hosts.equiv | 290 | .Pa /etc/hosts.equiv |
267 | and | 291 | and |
268 | .Pa /etc/shosts.equiv | 292 | .Pa /etc/shosts.equiv |
269 | are still used. The default is | 293 | are still used. |
294 | The default is | ||
270 | .Dq yes . | 295 | .Dq yes . |
271 | .It Cm IgnoreUserKnownHosts | 296 | .It Cm IgnoreUserKnownHosts |
272 | Specifies whether | 297 | Specifies whether |
@@ -279,10 +304,13 @@ The default is | |||
279 | .Dq no . | 304 | .Dq no . |
280 | .It Cm KeepAlive | 305 | .It Cm KeepAlive |
281 | Specifies whether the system should send keepalive messages to the | 306 | Specifies whether the system should send keepalive messages to the |
282 | other side. If they are sent, death of the connection or crash of one | 307 | other side. |
283 | of the machines will be properly noticed. However, this means that | 308 | If they are sent, death of the connection or crash of one |
309 | of the machines will be properly noticed. | ||
310 | However, this means that | ||
284 | connections will die if the route is down temporarily, and some people | 311 | connections will die if the route is down temporarily, and some people |
285 | find it annoying. On the other hand, if keepalives are not send, | 312 | find it annoying. |
313 | On the other hand, if keepalives are not send, | ||
286 | sessions may hang indefinitely on the server, leaving | 314 | sessions may hang indefinitely on the server, leaving |
287 | .Dq ghost | 315 | .Dq ghost |
288 | users and consuming server resources. | 316 | users and consuming server resources. |
@@ -290,25 +318,27 @@ users and consuming server resources. | |||
290 | The default is | 318 | The default is |
291 | .Dq yes | 319 | .Dq yes |
292 | (to send keepalives), and the server will notice | 320 | (to send keepalives), and the server will notice |
293 | if the network goes down or the client host reboots. This avoids | 321 | if the network goes down or the client host reboots. |
294 | infinitely hanging sessions. | 322 | This avoids infinitely hanging sessions. |
295 | .Pp | 323 | .Pp |
296 | To disable keepalives, the value should be set to | 324 | To disable keepalives, the value should be set to |
297 | .Dq no | 325 | .Dq no |
298 | in both the server and the client configuration files. | 326 | in both the server and the client configuration files. |
299 | .It Cm KerberosAuthentication | 327 | .It Cm KerberosAuthentication |
300 | Specifies whether Kerberos authentication is allowed. This can | 328 | Specifies whether Kerberos authentication is allowed. |
301 | be in the form of a Kerberos ticket, or if | 329 | This can be in the form of a Kerberos ticket, or if |
302 | .Cm PasswordAuthentication | 330 | .Cm PasswordAuthentication |
303 | is yes, the password provided by the user will be validated through | 331 | is yes, the password provided by the user will be validated through |
304 | the Kerberos KDC. Default is | 332 | the Kerberos KDC. |
333 | Default is | ||
305 | .Dq yes . | 334 | .Dq yes . |
306 | .It Cm KerberosOrLocalPasswd | 335 | .It Cm KerberosOrLocalPasswd |
307 | If set then if password authentication through Kerberos fails then | 336 | If set then if password authentication through Kerberos fails then |
308 | the password will be validated via any additional local mechanism | 337 | the password will be validated via any additional local mechanism |
309 | such as | 338 | such as |
310 | .Pa /etc/passwd | 339 | .Pa /etc/passwd |
311 | or SecurID. Default is | 340 | or SecurID. |
341 | Default is | ||
312 | .Dq yes . | 342 | .Dq yes . |
313 | .It Cm KerberosTgtPassing | 343 | .It Cm KerberosTgtPassing |
314 | Specifies whether a Kerberos TGT may be forwarded to the server. | 344 | Specifies whether a Kerberos TGT may be forwarded to the server. |
@@ -317,15 +347,18 @@ Default is | |||
317 | as this only works when the Kerberos KDC is actually an AFS kaserver. | 347 | as this only works when the Kerberos KDC is actually an AFS kaserver. |
318 | .It Cm KerberosTicketCleanup | 348 | .It Cm KerberosTicketCleanup |
319 | Specifies whether to automatically destroy the user's ticket cache | 349 | Specifies whether to automatically destroy the user's ticket cache |
320 | file on logout. Default is | 350 | file on logout. |
351 | Default is | ||
321 | .Dq yes . | 352 | .Dq yes . |
322 | .It Cm KeyRegenerationInterval | 353 | .It Cm KeyRegenerationInterval |
323 | The server key is automatically regenerated after this many seconds | 354 | The server key is automatically regenerated after this many seconds |
324 | (if it has been used). The purpose of regeneration is to prevent | 355 | (if it has been used). |
356 | The purpose of regeneration is to prevent | ||
325 | decrypting captured sessions by later breaking into the machine and | 357 | decrypting captured sessions by later breaking into the machine and |
326 | stealing the keys. The key is never stored anywhere. If the value is | 358 | stealing the keys. |
327 | 0, the key is never regenerated. The default is 3600 | 359 | The key is never stored anywhere. |
328 | (seconds). | 360 | If the value is 0, the key is never regenerated. |
361 | The default is 3600 (seconds). | ||
329 | .It Cm ListenAddress | 362 | .It Cm ListenAddress |
330 | Specifies what local address | 363 | Specifies what local address |
331 | .Nm | 364 | .Nm |
@@ -337,7 +370,8 @@ Additionally, the | |||
337 | options must precede this option. | 370 | options must precede this option. |
338 | .It Cm LoginGraceTime | 371 | .It Cm LoginGraceTime |
339 | The server disconnects after this time if the user has not | 372 | The server disconnects after this time if the user has not |
340 | successfully logged in. If the value is 0, there is no time limit. | 373 | successfully logged in. |
374 | If the value is 0, there is no time limit. | ||
341 | The default is 600 (seconds). | 375 | The default is 600 (seconds). |
342 | .It Cm LogLevel | 376 | .It Cm LogLevel |
343 | Gives the verbosity level that is used when logging messages from | 377 | Gives the verbosity level that is used when logging messages from |
@@ -353,8 +387,8 @@ The default is | |||
353 | .Dq yes . | 387 | .Dq yes . |
354 | .It Cm PermitEmptyPasswords | 388 | .It Cm PermitEmptyPasswords |
355 | When password authentication is allowed, it specifies whether the | 389 | When password authentication is allowed, it specifies whether the |
356 | server allows login to accounts with empty password strings. The default | 390 | server allows login to accounts with empty password strings. |
357 | is | 391 | The default is |
358 | .Dq no . | 392 | .Dq no . |
359 | .It Cm PermitRootLogin | 393 | .It Cm PermitRootLogin |
360 | Specifies whether the root can log in using | 394 | Specifies whether the root can log in using |
@@ -379,24 +413,27 @@ normally not allowed). | |||
379 | .It Cm Port | 413 | .It Cm Port |
380 | Specifies the port number that | 414 | Specifies the port number that |
381 | .Nm | 415 | .Nm |
382 | listens on. The default is 22. | 416 | listens on. |
417 | The default is 22. | ||
383 | Multiple options of this type are permitted. | 418 | Multiple options of this type are permitted. |
384 | .It Cm PrintMotd | 419 | .It Cm PrintMotd |
385 | Specifies whether | 420 | Specifies whether |
386 | .Nm | 421 | .Nm |
387 | should print | 422 | should print |
388 | .Pa /etc/motd | 423 | .Pa /etc/motd |
389 | when a user logs in interactively. (On some systems it is also | 424 | when a user logs in interactively. |
390 | printed by the shell, | 425 | (On some systems it is also printed by the shell, |
391 | .Pa /etc/profile , | 426 | .Pa /etc/profile , |
392 | or equivalent.) The default is | 427 | or equivalent.) |
428 | The default is | ||
393 | .Dq yes . | 429 | .Dq yes . |
394 | .It Cm RandomSeed | 430 | .It Cm RandomSeed |
395 | Obsolete. Random number generation uses other techniques. | 431 | Obsolete. |
432 | Random number generation uses other techniques. | ||
396 | .It Cm RhostsAuthentication | 433 | .It Cm RhostsAuthentication |
397 | Specifies whether authentication using rhosts or /etc/hosts.equiv | 434 | Specifies whether authentication using rhosts or /etc/hosts.equiv |
398 | files is sufficient. Normally, this method should not be permitted | 435 | files is sufficient. |
399 | because it is insecure. | 436 | Normally, this method should not be permitted because it is insecure. |
400 | .Cm RhostsRSAAuthentication | 437 | .Cm RhostsRSAAuthentication |
401 | should be used | 438 | should be used |
402 | instead, because it performs RSA-based host authentication in addition | 439 | instead, because it performs RSA-based host authentication in addition |
@@ -405,18 +442,21 @@ The default is | |||
405 | .Dq no . | 442 | .Dq no . |
406 | .It Cm RhostsRSAAuthentication | 443 | .It Cm RhostsRSAAuthentication |
407 | Specifies whether rhosts or /etc/hosts.equiv authentication together | 444 | Specifies whether rhosts or /etc/hosts.equiv authentication together |
408 | with successful RSA host authentication is allowed. The default is | 445 | with successful RSA host authentication is allowed. |
446 | The default is | ||
409 | .Dq no . | 447 | .Dq no . |
410 | .It Cm RSAAuthentication | 448 | .It Cm RSAAuthentication |
411 | Specifies whether pure RSA authentication is allowed. The default is | 449 | Specifies whether pure RSA authentication is allowed. |
450 | The default is | ||
412 | .Dq yes . | 451 | .Dq yes . |
413 | .It Cm ServerKeyBits | 452 | .It Cm ServerKeyBits |
414 | Defines the number of bits in the server key. The minimum value is | 453 | Defines the number of bits in the server key. |
415 | 512, and the default is 768. | 454 | The minimum value is 512, and the default is 768. |
416 | .It Cm SkeyAuthentication | 455 | .It Cm SkeyAuthentication |
417 | Specifies whether | 456 | Specifies whether |
418 | .Xr skey 1 | 457 | .Xr skey 1 |
419 | authentication is allowed. The default is | 458 | authentication is allowed. |
459 | The default is | ||
420 | .Dq yes . | 460 | .Dq yes . |
421 | Note that s/key authentication is enabled only if | 461 | Note that s/key authentication is enabled only if |
422 | .Cm PasswordAuthentication | 462 | .Cm PasswordAuthentication |
@@ -425,29 +465,34 @@ is allowed, too. | |||
425 | Specifies whether | 465 | Specifies whether |
426 | .Nm | 466 | .Nm |
427 | should check file modes and ownership of the | 467 | should check file modes and ownership of the |
428 | user's files and home directory before accepting login. This | 468 | user's files and home directory before accepting login. |
429 | is normally desirable because novices sometimes accidentally leave their | 469 | This is normally desirable because novices sometimes accidentally leave their |
430 | directory or files world-writable. The default is | 470 | directory or files world-writable. |
471 | The default is | ||
431 | .Dq yes . | 472 | .Dq yes . |
432 | .It Cm SyslogFacility | 473 | .It Cm SyslogFacility |
433 | Gives the facility code that is used when logging messages from | 474 | Gives the facility code that is used when logging messages from |
434 | .Nm sshd . | 475 | .Nm sshd . |
435 | The possible values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, | 476 | The possible values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, |
436 | LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. The default is AUTH. | 477 | LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. |
478 | The default is AUTH. | ||
437 | .It Cm UseLogin | 479 | .It Cm UseLogin |
438 | Specifies whether | 480 | Specifies whether |
439 | .Xr login 1 | 481 | .Xr login 1 |
440 | is used. The default is | 482 | is used. |
483 | The default is | ||
441 | .Dq no . | 484 | .Dq no . |
442 | .It Cm X11DisplayOffset | 485 | .It Cm X11DisplayOffset |
443 | Specifies the first display number available for | 486 | Specifies the first display number available for |
444 | .Nm sshd Ns 's | 487 | .Nm sshd Ns 's |
445 | X11 forwarding. This prevents | 488 | X11 forwarding. |
489 | This prevents | ||
446 | .Nm | 490 | .Nm |
447 | from interfering with real X11 servers. | 491 | from interfering with real X11 servers. |
448 | The default is 10. | 492 | The default is 10. |
449 | .It Cm X11Forwarding | 493 | .It Cm X11Forwarding |
450 | Specifies whether X11 forwarding is permitted. The default is | 494 | Specifies whether X11 forwarding is permitted. |
495 | The default is | ||
451 | .Dq no . | 496 | .Dq no . |
452 | Note that disabling X11 forwarding does not improve security in any | 497 | Note that disabling X11 forwarding does not improve security in any |
453 | way, as users can always install their own forwarders. | 498 | way, as users can always install their own forwarders. |
@@ -489,7 +534,8 @@ If | |||
489 | exists, runs it; else if | 534 | exists, runs it; else if |
490 | .Pa /etc/sshrc | 535 | .Pa /etc/sshrc |
491 | exists, runs | 536 | exists, runs |
492 | it; otherwise runs xauth. The | 537 | it; otherwise runs xauth. |
538 | The | ||
493 | .Dq rc | 539 | .Dq rc |
494 | files are given the X11 | 540 | files are given the X11 |
495 | authentication protocol and cookie in standard input. | 541 | authentication protocol and cookie in standard input. |
@@ -500,12 +546,15 @@ Runs user's shell or command. | |||
500 | The | 546 | The |
501 | .Pa $HOME/.ssh/authorized_keys | 547 | .Pa $HOME/.ssh/authorized_keys |
502 | file lists the RSA keys that are | 548 | file lists the RSA keys that are |
503 | permitted for RSA authentication. Each line of the file contains one | 549 | permitted for RSA authentication. |
550 | Each line of the file contains one | ||
504 | key (empty lines and lines starting with a | 551 | key (empty lines and lines starting with a |
505 | .Ql # | 552 | .Ql # |
506 | are ignored as | 553 | are ignored as |
507 | comments). Each line consists of the following fields, separated by | 554 | comments). |
508 | spaces: options, bits, exponent, modulus, comment. The options field | 555 | Each line consists of the following fields, separated by |
556 | spaces: options, bits, exponent, modulus, comment. | ||
557 | The options field | ||
509 | is optional; its presence is determined by whether the line starts | 558 | is optional; its presence is determined by whether the line starts |
510 | with a number or not (the option field never starts with a number). | 559 | with a number or not (the option field never starts with a number). |
511 | The bits, exponent, modulus and comment fields give the RSA key; the | 560 | The bits, exponent, modulus and comment fields give the RSA key; the |
@@ -513,47 +562,58 @@ comment field is not used for anything (but may be convenient for the | |||
513 | user to identify the key). | 562 | user to identify the key). |
514 | .Pp | 563 | .Pp |
515 | Note that lines in this file are usually several hundred bytes long | 564 | Note that lines in this file are usually several hundred bytes long |
516 | (because of the size of the RSA key modulus). You don't want to type | 565 | (because of the size of the RSA key modulus). |
517 | them in; instead, copy the | 566 | You don't want to type them in; instead, copy the |
518 | .Pa identity.pub | 567 | .Pa identity.pub |
519 | file and edit it. | 568 | file and edit it. |
520 | .Pp | 569 | .Pp |
521 | The options (if present) consists of comma-separated option | 570 | The options (if present) consists of comma-separated option |
522 | specifications. No spaces are permitted, except within double quotes. | 571 | specifications. |
572 | No spaces are permitted, except within double quotes. | ||
523 | The following option specifications are supported: | 573 | The following option specifications are supported: |
524 | .Bl -tag -width Ds | 574 | .Bl -tag -width Ds |
525 | .It Cm from="pattern-list" | 575 | .It Cm from="pattern-list" |
526 | Specifies that in addition to RSA authentication, the canonical name | 576 | Specifies that in addition to RSA authentication, the canonical name |
527 | of the remote host must be present in the comma-separated list of | 577 | of the remote host must be present in the comma-separated list of |
528 | patterns ('*' and '?' serve as wildcards). The list may also contain | 578 | patterns |
529 | patterns negated by prefixing them with '!'; if the canonical host | 579 | .Pf ( Ql * |
530 | name matches a negated pattern, the key is not accepted. The purpose | 580 | and |
581 | .Ql ? | ||
582 | serve as wildcards). | ||
583 | The list may also contain | ||
584 | patterns negated by prefixing them with | ||
585 | .Ql ! ; | ||
586 | if the canonical host name matches a negated pattern, the key is not accepted. | ||
587 | The purpose | ||
531 | of this option is to optionally increase security: RSA authentication | 588 | of this option is to optionally increase security: RSA authentication |
532 | by itself does not trust the network or name servers or anything (but | 589 | by itself does not trust the network or name servers or anything (but |
533 | the key); however, if somebody somehow steals the key, the key | 590 | the key); however, if somebody somehow steals the key, the key |
534 | permits an intruder to log in from anywhere in the world. This | 591 | permits an intruder to log in from anywhere in the world. |
535 | additional option makes using a stolen key more difficult (name | 592 | This additional option makes using a stolen key more difficult (name |
536 | servers and/or routers would have to be compromised in addition to | 593 | servers and/or routers would have to be compromised in addition to |
537 | just the key). | 594 | just the key). |
538 | .It Cm command="command" | 595 | .It Cm command="command" |
539 | Specifies that the command is executed whenever this key is used for | 596 | Specifies that the command is executed whenever this key is used for |
540 | authentication. The command supplied by the user (if any) is ignored. | 597 | authentication. |
598 | The command supplied by the user (if any) is ignored. | ||
541 | The command is run on a pty if the connection requests a pty; | 599 | The command is run on a pty if the connection requests a pty; |
542 | otherwise it is run without a tty. A quote may be included in the | 600 | otherwise it is run without a tty. |
543 | command by quoting it with a backslash. This option might be useful | 601 | A quote may be included in the command by quoting it with a backslash. |
544 | to restrict certain RSA keys to perform just a specific operation. An | 602 | This option might be useful |
545 | example might be a key that permits remote backups but nothing | 603 | to restrict certain RSA keys to perform just a specific operation. |
546 | else. Notice that the client may specify TCP/IP and/or X11 | 604 | An example might be a key that permits remote backups but nothing else. |
605 | Notice that the client may specify TCP/IP and/or X11 | ||
547 | forwardings unless they are explicitly prohibited. | 606 | forwardings unless they are explicitly prohibited. |
548 | .It Cm environment="NAME=value" | 607 | .It Cm environment="NAME=value" |
549 | Specifies that the string is to be added to the environment when | 608 | Specifies that the string is to be added to the environment when |
550 | logging in using this key. Environment variables set this way | 609 | logging in using this key. |
551 | override other default environment values. Multiple options of this | 610 | Environment variables set this way |
552 | type are permitted. | 611 | override other default environment values. |
612 | Multiple options of this type are permitted. | ||
553 | .It Cm no-port-forwarding | 613 | .It Cm no-port-forwarding |
554 | Forbids TCP/IP forwarding when this key is used for authentication. | 614 | Forbids TCP/IP forwarding when this key is used for authentication. |
555 | Any port forward requests by the client will return an error. This | 615 | Any port forward requests by the client will return an error. |
556 | might be used, e.g., in connection with the | 616 | This might be used, e.g., in connection with the |
557 | .Cm command | 617 | .Cm command |
558 | option. | 618 | option. |
559 | .It Cm no-X11-forwarding | 619 | .It Cm no-X11-forwarding |
@@ -576,19 +636,21 @@ The | |||
576 | .Pa /etc/ssh_known_hosts | 636 | .Pa /etc/ssh_known_hosts |
577 | and | 637 | and |
578 | .Pa $HOME/.ssh/known_hosts | 638 | .Pa $HOME/.ssh/known_hosts |
579 | files contain host public keys for all known hosts. The global file should | 639 | files contain host public keys for all known hosts. |
580 | be prepared by the admistrator (optional), and the per-user file is | 640 | The global file should |
641 | be prepared by the administrator (optional), and the per-user file is | ||
581 | maintained automatically: whenever the user connects an unknown host | 642 | maintained automatically: whenever the user connects an unknown host |
582 | its key is added to the per-user file. | 643 | its key is added to the per-user file. |
583 | .Pp | 644 | .Pp |
584 | Each line in these files contains the following fields: hostnames, | 645 | Each line in these files contains the following fields: hostnames, |
585 | bits, exponent, modulus, comment. The fields are separated by spaces. | 646 | bits, exponent, modulus, comment. |
647 | The fields are separated by spaces. | ||
586 | .Pp | 648 | .Pp |
587 | Hostnames is a comma-separated list of patterns ('*' and '?' act as | 649 | Hostnames is a comma-separated list of patterns ('*' and '?' act as |
588 | wildcards); each pattern in turn is matched against the canonical host | 650 | wildcards); each pattern in turn is matched against the canonical host |
589 | name (when authenticating a client) or against the user-supplied | 651 | name (when authenticating a client) or against the user-supplied |
590 | name (when authenticating a server). A pattern may also be preceded | 652 | name (when authenticating a server). |
591 | by | 653 | A pattern may also be preceded by |
592 | .Ql ! | 654 | .Ql ! |
593 | to indicate negation: if the host name matches a negated | 655 | to indicate negation: if the host name matches a negated |
594 | pattern, it is not accepted (by that line) even if it matched another | 656 | pattern, it is not accepted (by that line) even if it matched another |
@@ -604,10 +666,13 @@ Lines starting with | |||
604 | and empty lines are ignored as comments. | 666 | and empty lines are ignored as comments. |
605 | .Pp | 667 | .Pp |
606 | When performing host authentication, authentication is accepted if any | 668 | When performing host authentication, authentication is accepted if any |
607 | matching line has the proper key. It is thus permissible (but not | 669 | matching line has the proper key. |
670 | It is thus permissible (but not | ||
608 | recommended) to have several lines or different host keys for the same | 671 | recommended) to have several lines or different host keys for the same |
609 | names. This will inevitably happen when short forms of host names | 672 | names. |
610 | from different domains are put in the file. It is possible | 673 | This will inevitably happen when short forms of host names |
674 | from different domains are put in the file. | ||
675 | It is possible | ||
611 | that the files contain conflicting information; authentication is | 676 | that the files contain conflicting information; authentication is |
612 | accepted if valid information can be found from either file. | 677 | accepted if valid information can be found from either file. |
613 | .Pp | 678 | .Pp |
@@ -636,7 +701,9 @@ does not start if this file is group/world-accessible. | |||
636 | .It Pa /etc/ssh_host_key.pub | 701 | .It Pa /etc/ssh_host_key.pub |
637 | Contains the public part of the host key. | 702 | Contains the public part of the host key. |
638 | This file should be world-readable but writable only by | 703 | This file should be world-readable but writable only by |
639 | root. Its contents should match the private part. This file is not | 704 | root. |
705 | Its contents should match the private part. | ||
706 | This file is not | ||
640 | really used for anything; it is only provided for the convenience of | 707 | really used for anything; it is only provided for the convenience of |
641 | the user so its contents can be copied to known hosts files. | 708 | the user so its contents can be copied to known hosts files. |
642 | These two files are created using | 709 | These two files are created using |
@@ -646,21 +713,22 @@ Contains the process ID of the | |||
646 | .Nm | 713 | .Nm |
647 | listening for connections (if there are several daemons running | 714 | listening for connections (if there are several daemons running |
648 | concurrently for different ports, this contains the pid of the one | 715 | concurrently for different ports, this contains the pid of the one |
649 | started last). The contents of this file are not sensitive; it can be | 716 | started last). |
650 | world-readable. | 717 | The contents of this file are not sensitive; it can be world-readable. |
651 | .It Pa $HOME/.ssh/authorized_keys | 718 | .It Pa $HOME/.ssh/authorized_keys |
652 | Lists the RSA keys that can be used to log into the user's account. | 719 | Lists the RSA keys that can be used to log into the user's account. |
653 | This file must be readable by root (which may on some machines imply | 720 | This file must be readable by root (which may on some machines imply |
654 | it being world-readable if the user's home directory resides on an NFS | 721 | it being world-readable if the user's home directory resides on an NFS |
655 | volume). It is recommended that it not be accessible by others. The | 722 | volume). |
656 | format of this file is described above. | 723 | It is recommended that it not be accessible by others. |
724 | The format of this file is described above. | ||
657 | .It Pa "/etc/ssh_known_hosts" and "$HOME/.ssh/known_hosts" | 725 | .It Pa "/etc/ssh_known_hosts" and "$HOME/.ssh/known_hosts" |
658 | These files are consulted when using rhosts with RSA host | 726 | These files are consulted when using rhosts with RSA host |
659 | authentication to check the public key of the host. The key must be | 727 | authentication to check the public key of the host. |
660 | listed in one of these files to be accepted. | 728 | The key must be listed in one of these files to be accepted. |
661 | The client uses the same files | 729 | The client uses the same files |
662 | to verify that the remote host is the one we intended to | 730 | to verify that the remote host is the one we intended to connect. |
663 | connect. These files should be writable only by root/the owner. | 731 | These files should be writable only by root/the owner. |
664 | .Pa /etc/ssh_known_hosts | 732 | .Pa /etc/ssh_known_hosts |
665 | should be world-readable, and | 733 | should be world-readable, and |
666 | .Pa $HOME/.ssh/known_hosts | 734 | .Pa $HOME/.ssh/known_hosts |
@@ -668,9 +736,11 @@ can but need not be world-readable. | |||
668 | .It Pa /etc/nologin | 736 | .It Pa /etc/nologin |
669 | If this file exists, | 737 | If this file exists, |
670 | .Nm | 738 | .Nm |
671 | refuses to let anyone except root log in. The contents of the file | 739 | refuses to let anyone except root log in. |
740 | The contents of the file | ||
672 | are displayed to anyone trying to log in, and non-root connections are | 741 | are displayed to anyone trying to log in, and non-root connections are |
673 | refused. The file should be world-readable. | 742 | refused. |
743 | The file should be world-readable. | ||
674 | .It Pa /etc/hosts.allow, /etc/hosts.deny | 744 | .It Pa /etc/hosts.allow, /etc/hosts.deny |
675 | If compiled with | 745 | If compiled with |
676 | .Sy LIBWRAP | 746 | .Sy LIBWRAP |
@@ -678,13 +748,16 @@ support, tcp-wrappers access controls may be defined here as described in | |||
678 | .Xr hosts_access 5 . | 748 | .Xr hosts_access 5 . |
679 | .It Pa $HOME/.rhosts | 749 | .It Pa $HOME/.rhosts |
680 | This file contains host-username pairs, separated by a space, one per | 750 | This file contains host-username pairs, separated by a space, one per |
681 | line. The given user on the corresponding host is permitted to log in | 751 | line. |
682 | without password. The same file is used by rlogind and rshd. | 752 | The given user on the corresponding host is permitted to log in |
753 | without password. | ||
754 | The same file is used by rlogind and rshd. | ||
683 | The file must | 755 | The file must |
684 | be writable only by the user; it is recommended that it not be | 756 | be writable only by the user; it is recommended that it not be |
685 | accessible by others. | 757 | accessible by others. |
686 | .Pp | 758 | .Pp |
687 | If is also possible to use netgroups in the file. Either host or user | 759 | If is also possible to use netgroups in the file. |
760 | Either host or user | ||
688 | name may be of the form +@groupname to specify all hosts or all users | 761 | name may be of the form +@groupname to specify all hosts or all users |
689 | in the group. | 762 | in the group. |
690 | .It Pa $HOME/.shosts | 763 | .It Pa $HOME/.shosts |
@@ -696,21 +769,26 @@ not used by rlogin and rshd, so using this permits access using SSH only. | |||
696 | .Pa /etc/hosts.equiv | 769 | .Pa /etc/hosts.equiv |
697 | This file is used during | 770 | This file is used during |
698 | .Pa .rhosts | 771 | .Pa .rhosts |
699 | authentication. In the | 772 | authentication. |
700 | simplest form, this file contains host names, one per line. Users on | 773 | In the simplest form, this file contains host names, one per line. |
774 | Users on | ||
701 | those hosts are permitted to log in without a password, provided they | 775 | those hosts are permitted to log in without a password, provided they |
702 | have the same user name on both machines. The host name may also be | 776 | have the same user name on both machines. |
777 | The host name may also be | ||
703 | followed by a user name; such users are permitted to log in as | 778 | followed by a user name; such users are permitted to log in as |
704 | .Em any | 779 | .Em any |
705 | user on this machine (except root). Additionally, the syntax | 780 | user on this machine (except root). |
781 | Additionally, the syntax | ||
706 | .Dq +@group | 782 | .Dq +@group |
707 | can be used to specify netgroups. Negated entries start with | 783 | can be used to specify netgroups. |
784 | Negated entries start with | ||
708 | .Ql \&- . | 785 | .Ql \&- . |
709 | .Pp | 786 | .Pp |
710 | If the client host/user is successfully matched in this file, login is | 787 | If the client host/user is successfully matched in this file, login is |
711 | automatically permitted provided the client and server user names are the | 788 | automatically permitted provided the client and server user names are the |
712 | same. Additionally, successful RSA host authentication is normally | 789 | same. |
713 | required. This file must be writable only by root; it is recommended | 790 | Additionally, successful RSA host authentication is normally required. |
791 | This file must be writable only by root; it is recommended | ||
714 | that it be world-readable. | 792 | that it be world-readable. |
715 | .Pp | 793 | .Pp |
716 | .Sy "Warning: It is almost never a good idea to use user names in" | 794 | .Sy "Warning: It is almost never a good idea to use user names in" |
@@ -718,8 +796,9 @@ that it be world-readable. | |||
718 | Beware that it really means that the named user(s) can log in as | 796 | Beware that it really means that the named user(s) can log in as |
719 | .Em anybody , | 797 | .Em anybody , |
720 | which includes bin, daemon, adm, and other accounts that own critical | 798 | which includes bin, daemon, adm, and other accounts that own critical |
721 | binaries and directories. Using a user name practically grants the | 799 | binaries and directories. |
722 | user root access. The only valid use for user names that I can think | 800 | Using a user name practically grants the user root access. |
801 | The only valid use for user names that I can think | ||
723 | of is in negative entries. | 802 | of is in negative entries. |
724 | .Pp | 803 | .Pp |
725 | Note that this warning also applies to rsh/rlogin. | 804 | Note that this warning also applies to rsh/rlogin. |
@@ -729,18 +808,20 @@ This is processed exactly as | |||
729 | However, this file may be useful in environments that want to run both | 808 | However, this file may be useful in environments that want to run both |
730 | rsh/rlogin and ssh. | 809 | rsh/rlogin and ssh. |
731 | .It Pa $HOME/.ssh/environment | 810 | .It Pa $HOME/.ssh/environment |
732 | This file is read into the environment at login (if it exists). It | 811 | This file is read into the environment at login (if it exists). |
733 | can only contain empty lines, comment lines (that start with | 812 | It can only contain empty lines, comment lines (that start with |
734 | .Ql # ) , | 813 | .Ql # ) , |
735 | and assignment lines of the form name=value. The file should be writable | 814 | and assignment lines of the form name=value. |
815 | The file should be writable | ||
736 | only by the user; it need not be readable by anyone else. | 816 | only by the user; it need not be readable by anyone else. |
737 | .It Pa $HOME/.ssh/rc | 817 | .It Pa $HOME/.ssh/rc |
738 | If this file exists, it is run with /bin/sh after reading the | 818 | If this file exists, it is run with /bin/sh after reading the |
739 | environment files but before starting the user's shell or command. If | 819 | environment files but before starting the user's shell or command. |
740 | X11 spoofing is in use, this will receive the "proto cookie" pair in | 820 | If X11 spoofing is in use, this will receive the "proto cookie" pair in |
741 | standard input (and | 821 | standard input (and |
742 | .Ev DISPLAY | 822 | .Ev DISPLAY |
743 | in environment). This must call | 823 | in environment). |
824 | This must call | ||
744 | .Xr xauth 1 | 825 | .Xr xauth 1 |
745 | in that case. | 826 | in that case. |
746 | .Pp | 827 | .Pp |
@@ -763,12 +844,13 @@ readable by anyone else. | |||
763 | Like | 844 | Like |
764 | .Pa $HOME/.ssh/rc . | 845 | .Pa $HOME/.ssh/rc . |
765 | This can be used to specify | 846 | This can be used to specify |
766 | machine-specific login-time initializations globally. This file | 847 | machine-specific login-time initializations globally. |
767 | should be writable only by root, and should be world-readable. | 848 | This file should be writable only by root, and should be world-readable. |
768 | .Sh AUTHOR | 849 | .Sh AUTHOR |
769 | OpenSSH | 850 | OpenSSH |
770 | is a derivative of the original (free) ssh 1.2.12 release by Tatu Ylonen, | 851 | is a derivative of the original (free) ssh 1.2.12 release by Tatu Ylonen, |
771 | but with bugs removed and newer features re-added. Rapidly after the | 852 | but with bugs removed and newer features re-added. |
853 | Rapidly after the | ||
772 | 1.2.12 release, newer versions of the original ssh bore successively | 854 | 1.2.12 release, newer versions of the original ssh bore successively |
773 | more restrictive licenses, and thus demand for a free version was born. | 855 | more restrictive licenses, and thus demand for a free version was born. |
774 | This version of OpenSSH | 856 | This version of OpenSSH |