summaryrefslogtreecommitdiff
path: root/sshconnect.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2000-11-13 22:57:25 +1100
committerDamien Miller <djm@mindrot.org>2000-11-13 22:57:25 +1100
commit0bc1bd814e3c2b5e92d6f595930051960d17f47f (patch)
tree176c7dc2844ecc2c1de0f72d221449556ffa5209 /sshconnect.c
parent559d383037b0872fcde4e6c40188b649c574be74 (diff)
- (djm) Merge OpenBSD changes:
- markus@cvs.openbsd.org 2000/11/06 16:04:56 [channels.c channels.h clientloop.c nchan.c serverloop.c] [session.c ssh.c] agent forwarding and -R for ssh2, based on work from jhuuskon@messi.uku.fi - markus@cvs.openbsd.org 2000/11/06 16:13:27 [ssh.c sshconnect.c sshd.c] do not disabled rhosts(rsa) if server port > 1024; from pekkas@netcore.fi - markus@cvs.openbsd.org 2000/11/06 16:16:35 [sshconnect.c] downgrade client to 1.3 if server is 1.4; help from mdb@juniper.net - markus@cvs.openbsd.org 2000/11/09 18:04:40 [auth1.c] typo; from mouring@pconline.com - markus@cvs.openbsd.org 2000/11/12 12:03:28 [ssh-agent.c] off-by-one when removing a key from the agent - markus@cvs.openbsd.org 2000/11/12 12:50:39 [auth-rh-rsa.c auth2.c authfd.c authfd.h] [authfile.c hostfile.c kex.c kex.h key.c key.h myproposal.h] [readconf.c readconf.h rsa.c rsa.h servconf.c servconf.h ssh-add.c] [ssh-agent.c ssh-keygen.1 ssh-keygen.c ssh.1 ssh.c ssh_config] [sshconnect1.c sshconnect2.c sshd.8 sshd.c sshd_config ssh-dss.c] [ssh-dss.h ssh-rsa.c ssh-rsa.h dsa.c dsa.h] add support for RSA to SSH2. please test. there are now 3 types of keys: RSA1 is used by ssh-1 only, RSA and DSA are used by SSH2. you can use 'ssh-keygen -t rsa -f ssh2_rsa_file' to generate RSA keys for SSH2 and use the RSA keys for hostkeys or for user keys. SSH2 RSA or DSA keys are added to .ssh/authorised_keys2 as before. - (djm) Fix up Makefile and Redhat init script to create RSA host keys - (djm) Change to interim version
Diffstat (limited to 'sshconnect.c')
-rw-r--r--sshconnect.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/sshconnect.c b/sshconnect.c
index d6072b36c..12ca69fd6 100644
--- a/sshconnect.c
+++ b/sshconnect.c
@@ -13,7 +13,7 @@
13 */ 13 */
14 14
15#include "includes.h" 15#include "includes.h"
16RCSID("$OpenBSD: sshconnect.c,v 1.79 2000/09/17 15:52:51 markus Exp $"); 16RCSID("$OpenBSD: sshconnect.c,v 1.81 2000/11/06 23:16:35 markus Exp $");
17 17
18#include <openssl/bn.h> 18#include <openssl/bn.h>
19#include <openssl/dsa.h> 19#include <openssl/dsa.h>
@@ -249,9 +249,9 @@ ssh_connect(const char *host, struct sockaddr_storage * hostaddr,
249 /* Create a socket for connecting. */ 249 /* Create a socket for connecting. */
250 sock = ssh_create_socket(original_real_uid, 250 sock = ssh_create_socket(original_real_uid,
251#ifdef HAVE_CYGWIN 251#ifdef HAVE_CYGWIN
252 !anonymous && port < IPPORT_RESERVED, 252 !anonymous,
253#else 253#else
254 !anonymous && geteuid() == 0 && port < IPPORT_RESERVED, 254 !anonymous && geteuid() == 0,
255#endif 255#endif
256 ai->ai_family); 256 ai->ai_family);
257 if (sock < 0) 257 if (sock < 0)
@@ -321,6 +321,7 @@ ssh_exchange_identification()
321 int remote_major, remote_minor, i, mismatch; 321 int remote_major, remote_minor, i, mismatch;
322 int connection_in = packet_get_connection_in(); 322 int connection_in = packet_get_connection_in();
323 int connection_out = packet_get_connection_out(); 323 int connection_out = packet_get_connection_out();
324 int minor1 = PROTOCOL_MINOR_1;
324 325
325 /* Read other side\'s version identification. */ 326 /* Read other side\'s version identification. */
326 for (;;) { 327 for (;;) {
@@ -374,9 +375,10 @@ ssh_exchange_identification()
374 } 375 }
375 if (remote_minor < 3) { 376 if (remote_minor < 3) {
376 fatal("Remote machine has too old SSH software version."); 377 fatal("Remote machine has too old SSH software version.");
377 } else if (remote_minor == 3) { 378 } else if (remote_minor == 3 || remote_minor == 4) {
378 /* We speak 1.3, too. */ 379 /* We speak 1.3, too. */
379 enable_compat13(); 380 enable_compat13();
381 minor1 = 3;
380 if (options.forward_agent) { 382 if (options.forward_agent) {
381 log("Agent forwarding disabled for protocol 1.3"); 383 log("Agent forwarding disabled for protocol 1.3");
382 options.forward_agent = 0; 384 options.forward_agent = 0;
@@ -402,7 +404,7 @@ ssh_exchange_identification()
402 /* Send our own protocol version identification. */ 404 /* Send our own protocol version identification. */
403 snprintf(buf, sizeof buf, "SSH-%d.%d-%.100s\n", 405 snprintf(buf, sizeof buf, "SSH-%d.%d-%.100s\n",
404 compat20 ? PROTOCOL_MAJOR_2 : PROTOCOL_MAJOR_1, 406 compat20 ? PROTOCOL_MAJOR_2 : PROTOCOL_MAJOR_1,
405 compat20 ? PROTOCOL_MINOR_2 : PROTOCOL_MINOR_1, 407 compat20 ? PROTOCOL_MINOR_2 : minor1,
406 SSH_VERSION); 408 SSH_VERSION);
407 if (atomicio(write, connection_out, buf, strlen(buf)) != strlen(buf)) 409 if (atomicio(write, connection_out, buf, strlen(buf)) != strlen(buf))
408 fatal("write: %.100s", strerror(errno)); 410 fatal("write: %.100s", strerror(errno));