diff options
author | Damien Miller <djm@mindrot.org> | 2000-10-14 16:23:11 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2000-10-14 16:23:11 +1100 |
commit | 874d77bb134a21a5cf625956b60173376a993ba8 (patch) | |
tree | 93dd73b2ff1fbf0ad5f3978a2c4e0d8438a0bf7c /auth-options.c | |
parent | 89d9796fbedef4eed6956a2c095c7cc25330c28d (diff) |
- (djm) Big OpenBSD sync:
- markus@cvs.openbsd.org 2000/09/30 10:27:44
[log.c]
allow loglevel debug
- markus@cvs.openbsd.org 2000/10/03 11:59:57
[packet.c]
hmac->mac
- markus@cvs.openbsd.org 2000/10/03 12:03:03
[auth-krb4.c auth-passwd.c auth-rh-rsa.c auth-rhosts.c auth-rsa.c auth1.c]
move fake-auth from auth1.c to individual auth methods, disables s/key in
debug-msg
- markus@cvs.openbsd.org 2000/10/03 12:16:48
ssh.c
do not resolve canonname, i have no idea why this was added oin ossh
- markus@cvs.openbsd.org 2000/10/09 15:30:44
ssh-keygen.1 ssh-keygen.c
-X now reads private ssh.com DSA keys, too.
- markus@cvs.openbsd.org 2000/10/09 15:32:34
auth-options.c
clear options on every call.
- markus@cvs.openbsd.org 2000/10/09 15:51:00
authfd.c authfd.h
interop with ssh-agent2, from <res@shore.net>
- markus@cvs.openbsd.org 2000/10/10 14:20:45
compat.c
use rexexp for version string matching
- provos@cvs.openbsd.org 2000/10/10 22:02:18
[kex.c kex.h myproposal.h ssh.h ssh2.h sshconnect2.c sshd.c dh.c dh.h]
First rough implementation of the diffie-hellman group exchange. The
client can ask the server for bigger groups to perform the diffie-hellman
in, thus increasing the attack complexity when using ciphers with longer
keys. University of Windsor provided network, T the company.
- markus@cvs.openbsd.org 2000/10/11 13:59:52
[auth-rsa.c auth2.c]
clear auth options unless auth sucessfull
- markus@cvs.openbsd.org 2000/10/11 14:00:27
[auth-options.h]
clear auth options unless auth sucessfull
- markus@cvs.openbsd.org 2000/10/11 14:03:27
[scp.1 scp.c]
support 'scp -o' with help from mouring@pconline.com
- markus@cvs.openbsd.org 2000/10/11 14:11:35
[dh.c]
Wall
- markus@cvs.openbsd.org 2000/10/11 14:14:40
[auth.h auth2.c readconf.c readconf.h readpass.c servconf.c servconf.h]
[ssh.h sshconnect2.c sshd_config auth2-skey.c cli.c cli.h]
add support for s/key (kbd-interactive) to ssh2, based on work by
mkiernan@avantgo.com and me
- markus@cvs.openbsd.org 2000/10/11 14:27:24
[auth.c auth1.c auth2.c authfile.c cipher.c cipher.h kex.c kex.h]
[myproposal.h packet.c readconf.c session.c ssh.c ssh.h sshconnect1.c]
[sshconnect2.c sshd.c]
new cipher framework
- markus@cvs.openbsd.org 2000/10/11 14:45:21
[cipher.c]
remove DES
- markus@cvs.openbsd.org 2000/10/12 03:59:20
[cipher.c cipher.h sshconnect1.c sshconnect2.c sshd.c]
enable DES in SSH-1 clients only
- markus@cvs.openbsd.org 2000/10/12 08:21:13
[kex.h packet.c]
remove unused
- markus@cvs.openbsd.org 2000/10/13 12:34:46
[sshd.c]
Kludge for F-Secure Macintosh < 1.0.2; appro@fy.chalmers.se
- markus@cvs.openbsd.org 2000/10/13 12:59:15
[cipher.c cipher.h myproposal.h rijndael.c rijndael.h]
rijndael/aes support
- markus@cvs.openbsd.org 2000/10/13 13:10:54
[sshd.8]
more info about -V
- markus@cvs.openbsd.org 2000/10/13 13:12:02
[myproposal.h]
prefer no compression
Diffstat (limited to 'auth-options.c')
-rw-r--r-- | auth-options.c | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/auth-options.c b/auth-options.c index da6965266..c9c149d69 100644 --- a/auth-options.c +++ b/auth-options.c | |||
@@ -14,7 +14,7 @@ | |||
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include "includes.h" | 16 | #include "includes.h" |
17 | RCSID("$OpenBSD: auth-options.c,v 1.4 2000/09/07 21:13:36 markus Exp $"); | 17 | RCSID("$OpenBSD: auth-options.c,v 1.5 2000/10/09 21:32:34 markus Exp $"); |
18 | 18 | ||
19 | #include "ssh.h" | 19 | #include "ssh.h" |
20 | #include "packet.h" | 20 | #include "packet.h" |
@@ -33,6 +33,25 @@ char *forced_command = NULL; | |||
33 | /* "environment=" options. */ | 33 | /* "environment=" options. */ |
34 | struct envstring *custom_environment = NULL; | 34 | struct envstring *custom_environment = NULL; |
35 | 35 | ||
36 | void | ||
37 | auth_clear_options(void) | ||
38 | { | ||
39 | no_agent_forwarding_flag = 0; | ||
40 | no_port_forwarding_flag = 0; | ||
41 | no_pty_flag = 0; | ||
42 | no_x11_forwarding_flag = 0; | ||
43 | while (custom_environment) { | ||
44 | struct envstring *ce = custom_environment; | ||
45 | custom_environment = ce->next; | ||
46 | xfree(ce->s); | ||
47 | xfree(ce); | ||
48 | } | ||
49 | if (forced_command) { | ||
50 | xfree(forced_command); | ||
51 | forced_command = NULL; | ||
52 | } | ||
53 | } | ||
54 | |||
36 | /* return 1 if access is granted, 0 if not. side effect: sets key option flags */ | 55 | /* return 1 if access is granted, 0 if not. side effect: sets key option flags */ |
37 | int | 56 | int |
38 | auth_parse_options(struct passwd *pw, char *options, unsigned long linenum) | 57 | auth_parse_options(struct passwd *pw, char *options, unsigned long linenum) |
@@ -40,6 +59,10 @@ auth_parse_options(struct passwd *pw, char *options, unsigned long linenum) | |||
40 | const char *cp; | 59 | const char *cp; |
41 | if (!options) | 60 | if (!options) |
42 | return 1; | 61 | return 1; |
62 | |||
63 | /* reset options */ | ||
64 | auth_clear_options(); | ||
65 | |||
43 | while (*options && *options != ' ' && *options != '\t') { | 66 | while (*options && *options != ' ' && *options != '\t') { |
44 | cp = "no-port-forwarding"; | 67 | cp = "no-port-forwarding"; |
45 | if (strncmp(options, cp, strlen(cp)) == 0) { | 68 | if (strncmp(options, cp, strlen(cp)) == 0) { |
@@ -87,9 +110,9 @@ auth_parse_options(struct passwd *pw, char *options, unsigned long linenum) | |||
87 | } | 110 | } |
88 | if (!*options) { | 111 | if (!*options) { |
89 | debug("%.100s, line %lu: missing end quote", | 112 | debug("%.100s, line %lu: missing end quote", |
90 | SSH_USER_PERMITTED_KEYS, linenum); | 113 | SSH_USER_PERMITTED_KEYS, linenum); |
91 | packet_send_debug("%.100s, line %lu: missing end quote", | 114 | packet_send_debug("%.100s, line %lu: missing end quote", |
92 | SSH_USER_PERMITTED_KEYS, linenum); | 115 | SSH_USER_PERMITTED_KEYS, linenum); |
93 | continue; | 116 | continue; |
94 | } | 117 | } |
95 | forced_command[i] = 0; | 118 | forced_command[i] = 0; |
@@ -117,9 +140,9 @@ auth_parse_options(struct passwd *pw, char *options, unsigned long linenum) | |||
117 | } | 140 | } |
118 | if (!*options) { | 141 | if (!*options) { |
119 | debug("%.100s, line %lu: missing end quote", | 142 | debug("%.100s, line %lu: missing end quote", |
120 | SSH_USER_PERMITTED_KEYS, linenum); | 143 | SSH_USER_PERMITTED_KEYS, linenum); |
121 | packet_send_debug("%.100s, line %lu: missing end quote", | 144 | packet_send_debug("%.100s, line %lu: missing end quote", |
122 | SSH_USER_PERMITTED_KEYS, linenum); | 145 | SSH_USER_PERMITTED_KEYS, linenum); |
123 | continue; | 146 | continue; |
124 | } | 147 | } |
125 | s[i] = 0; | 148 | s[i] = 0; |
@@ -175,21 +198,6 @@ auth_parse_options(struct passwd *pw, char *options, unsigned long linenum) | |||
175 | get_remote_ipaddr()); | 198 | get_remote_ipaddr()); |
176 | packet_send_debug("Your host '%.200s' is not permitted to use this key for login.", | 199 | packet_send_debug("Your host '%.200s' is not permitted to use this key for login.", |
177 | get_canonical_hostname()); | 200 | get_canonical_hostname()); |
178 | /* key invalid for this host, reset flags */ | ||
179 | no_agent_forwarding_flag = 0; | ||
180 | no_port_forwarding_flag = 0; | ||
181 | no_pty_flag = 0; | ||
182 | no_x11_forwarding_flag = 0; | ||
183 | while (custom_environment) { | ||
184 | struct envstring *ce = custom_environment; | ||
185 | custom_environment = ce->next; | ||
186 | xfree(ce->s); | ||
187 | xfree(ce); | ||
188 | } | ||
189 | if (forced_command) { | ||
190 | xfree(forced_command); | ||
191 | forced_command = NULL; | ||
192 | } | ||
193 | /* deny access */ | 201 | /* deny access */ |
194 | return 0; | 202 | return 0; |
195 | } | 203 | } |