1 /*        $NetBSD: ssh.h,v 1.14 2025/04/09 15:49:33 christos Exp $    */
2 /* $OpenBSD: ssh.h,v 1.91 2024/09/25 23:01:39 jsg Exp $ */
3 
4 /*
5  * Author: Tatu Ylonen <ylo@cs.hut.fi>
6  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
7  *                    All rights reserved
8  *
9  * As far as I am concerned, the code I have written for this software
10  * can be used freely for any purpose.  Any derived versions of this
11  * software must be clearly marked as such, and if the derived work is
12  * incompatible with the protocol description in the RFC file, it must be
13  * called by a name other than "ssh" or "Secure Shell".
14  */
15 
16 /* Default port number. */
17 #define SSH_DEFAULT_PORT      22
18 
19 /*
20  * Maximum number of certificate files that can be specified
21  * in configuration files or on the command line.
22  */
23 #define SSH_MAX_CERTIFICATE_FILES       100
24 
25 /*
26  * Maximum number of RSA authentication identity files that can be specified
27  * in configuration files or on the command line.
28  */
29 #define SSH_MAX_IDENTITY_FILES                    100
30 
31 /*
32  * Major protocol version.  Different version indicates major incompatibility
33  * that prevents communication.
34  *
35  * Minor protocol version.  Different version indicates minor incompatibility
36  * that does not prevent interoperation.
37  *
38  * We support only SSH2
39  */
40 #define PROTOCOL_MAJOR_2      2
41 #define PROTOCOL_MINOR_2      0
42 
43 /*
44  * Name for the service.  The port named by this service overrides the
45  * default port if present.
46  */
47 #define SSH_SERVICE_NAME      "ssh"
48 
49 /*
50  * Name of the environment variable containing the process ID of the
51  * authentication agent.
52  */
53 #define SSH_AGENTPID_ENV_NAME "SSH_AGENT_PID"
54 
55 /*
56  * Name of the environment variable containing the pathname of the
57  * authentication socket.
58  */
59 #define SSH_AUTHSOCKET_ENV_NAME "SSH_AUTH_SOCK"
60 
61 /*
62  * Environment variable for overwriting the default location of askpass
63  */
64 #define SSH_ASKPASS_ENV                 "SSH_ASKPASS"
65 
66 /*
67  * Environment variable to control whether or not askpass is used.
68  */
69 #define SSH_ASKPASS_REQUIRE_ENV                   "SSH_ASKPASS_REQUIRE"
70 
71 /*
72  * Length of the session key in bytes.  (Specified as 256 bits in the
73  * protocol.)
74  */
75 #define SSH_SESSION_KEY_LENGTH                    32
76 
77 /* Used to identify ``EscapeChar none'' */
78 #define SSH_ESCAPECHAR_NONE             -2
79 
80 /* Name of Kerberos service for SSH to use. */
81 #define KRB4_SERVICE_NAME               "rcmd"
82 
83 /*
84  * unprivileged user when UsePrivilegeSeparation=yes;
85  * sshd will change its privileges to this user and its
86  * primary group.
87  */
88 #define SSH_PRIVSEP_USER                "sshd"
89 
90 /* Listen backlog for sshd, ssh-agent and forwarding sockets */
91 #define SSH_LISTEN_BACKLOG              128
92 
93 /* Limits for banner exchange */
94 #define SSH_MAX_BANNER_LEN              8192
95 #define SSH_MAX_PRE_BANNER_LINES        1024
96