1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-01 03:22:48 -05:00

Integrate unfix.org's IPv6 patches up to level 10, with rather a lot

of polishing to bring them to what I think should in principle be
release quality. Unlike the unfix.org patches themselves, this
checkin enables IPv6 by default; if you want to leave it out, you
have to build with COMPAT=-DNO_IPV6.

I have tested that this compiles on Visual C 7 (so the nightlies
_should_ acquire IPv6 support without missing a beat), but since I
don't have IPv6 set up myself I haven't actually tested that it
_works_. It still seems to make correct IPv4 connections, but that's
all I've been able to verify for myself. Further testing is needed.

[originally from svn r5047]
[this svn revision also touched putty-wishlist]
This commit is contained in:
Simon Tatham
2004-12-30 16:45:11 +00:00
parent 7573f3733f
commit 6daf6faede
30 changed files with 583 additions and 309 deletions

View File

@ -1506,86 +1506,6 @@ background.)
The Connection panel allows you to configure options that apply to
more than one type of connection.
\S{config-termtype} \q{Terminal-type string}
\cfg{winhelp-topic}{connection.termtype}
Most servers you might connect to with PuTTY are designed to be
connected to from lots of different types of terminal. In order to
send the right control sequences to each one, the server will need
to know what type of terminal it is dealing with. Therefore, each of
the SSH, Telnet and Rlogin protocols allow a text string to be sent
down the connection describing the terminal.
PuTTY attempts to emulate the Unix \c{xterm} program, and by default
it reflects this by sending \c{xterm} as a terminal-type string. If
you find this is not doing what you want - perhaps the remote
system reports \q{Unknown terminal type} - you could try setting
this to something different, such as \c{vt220}.
If you're not sure whether a problem is due to the terminal type
setting or not, you probably need to consult the manual for your
application or your server.
\S{config-termspeed} \q{Terminal speeds}
\cfg{winhelp-topic}{connection.termspeed}
The Telnet, Rlogin, and SSH protocols allow the client to specify
terminal speeds to the server.
This parameter does \e{not} affect the actual speed of the connection,
which is always \q{as fast as possible}; it is just a hint that is
sometimes used by server software to modify its behaviour. For
instance, if a slow speed is indicated, the server may switch to a
less bandwidth-hungry display mode.
The value is usually meaningless in a network environment, but
PuTTY lets you configure it, in case you find the server is reacting
badly to the default value.
The format is a pair of numbers separated by a comma, for instance,
\c{38400,38400}. The first number represents the output speed
(\e{from} the server) in bits per second, and the second is the input
speed (\e{to} the server). (Only the first is used in the Rlogin
protocol.)
This option has no effect on Raw connections.
\S{config-username} \q{Auto-login username}
\cfg{winhelp-topic}{connection.username}
All three of the SSH, Telnet and Rlogin protocols allow you to
specify what user name you want to log in as, without having to type
it explicitly every time. (Some Telnet servers don't support this.)
In this box you can type that user name.
\S{config-environ} Setting environment variables on the server
\cfg{winhelp-topic}{telnet.environ}
The Telnet protocol provides a means for the client to pass
environment variables to the server. Many Telnet servers have
stopped supporting this feature due to security flaws, but PuTTY
still supports it for the benefit of any servers which have found
other ways around the security problems than just disabling the
whole mechanism.
Version 2 of the SSH protocol also provides a similar mechanism,
which is easier to implement without security flaws. Newer SSH2
servers are more likely to support it than older ones.
This configuration data is not used in the SSHv1, rlogin or raw
protocols.
To add an environment variable to the list transmitted down the
connection, you enter the variable name in the \q{Variable} box,
enter its value in the \q{Value} box, and press the \q{Add} button.
To remove one from the list, select it in the list box and press
\q{Remove}.
\S{config-keepalive} Using keepalives to prevent disconnection
\cfg{winhelp-topic}{connection.keepalive}
@ -1678,6 +1598,111 @@ are terminated than for keeping a connection alive.
TCP keepalives are disabled by default.
\S{config-address-family} \q{Internet protocol}
\cfg{winhelp-topic}{connection.ipversion}
This option allows the user to select between the old and new
Internet protocols and addressing schemes (IPv4 and IPv6). The
default setting is \q{Auto}, which means PuTTY will do something
sensible and try to guess which protocol you wanted. (If you specify
a literal Internet address, it will use whichever protocol that
address implies. If you provide a hostname, it will see what kinds
of address exist for that hostname; it will use IPv6 if there is an
IPv6 address available, and fall back to IPv4 if not.)
If you need to force PuTTY to use a particular protocol, you can
explicitly set this to \q{IPv4} or \q{IPv6}.
\H{config-data} The Data panel
The Data panel allows you to configure various pieces of data which
can be sent to the server to affect your connection at the far end.
Each options on this panel applies to more than one protocol.
Options which apply to only one protocol appear on that protocol's
configuration panels.
\S{config-username} \q{Auto-login username}
\cfg{winhelp-topic}{connection.username}
All three of the SSH, Telnet and Rlogin protocols allow you to
specify what user name you want to log in as, without having to type
it explicitly every time. (Some Telnet servers don't support this.)
In this box you can type that user name.
\S{config-termtype} \q{Terminal-type string}
\cfg{winhelp-topic}{connection.termtype}
Most servers you might connect to with PuTTY are designed to be
connected to from lots of different types of terminal. In order to
send the right control sequences to each one, the server will need
to know what type of terminal it is dealing with. Therefore, each of
the SSH, Telnet and Rlogin protocols allow a text string to be sent
down the connection describing the terminal.
PuTTY attempts to emulate the Unix \c{xterm} program, and by default
it reflects this by sending \c{xterm} as a terminal-type string. If
you find this is not doing what you want - perhaps the remote
system reports \q{Unknown terminal type} - you could try setting
this to something different, such as \c{vt220}.
If you're not sure whether a problem is due to the terminal type
setting or not, you probably need to consult the manual for your
application or your server.
\S{config-termspeed} \q{Terminal speeds}
\cfg{winhelp-topic}{connection.termspeed}
The Telnet, Rlogin, and SSH protocols allow the client to specify
terminal speeds to the server.
This parameter does \e{not} affect the actual speed of the connection,
which is always \q{as fast as possible}; it is just a hint that is
sometimes used by server software to modify its behaviour. For
instance, if a slow speed is indicated, the server may switch to a
less bandwidth-hungry display mode.
The value is usually meaningless in a network environment, but
PuTTY lets you configure it, in case you find the server is reacting
badly to the default value.
The format is a pair of numbers separated by a comma, for instance,
\c{38400,38400}. The first number represents the output speed
(\e{from} the server) in bits per second, and the second is the input
speed (\e{to} the server). (Only the first is used in the Rlogin
protocol.)
This option has no effect on Raw connections.
\S{config-environ} Setting environment variables on the server
\cfg{winhelp-topic}{telnet.environ}
The Telnet protocol provides a means for the client to pass
environment variables to the server. Many Telnet servers have
stopped supporting this feature due to security flaws, but PuTTY
still supports it for the benefit of any servers which have found
other ways around the security problems than just disabling the
whole mechanism.
Version 2 of the SSH protocol also provides a similar mechanism,
which is easier to implement without security flaws. Newer SSH2
servers are more likely to support it than older ones.
This configuration data is not used in the SSHv1, rlogin or raw
protocols.
To add an environment variable to the list transmitted down the
connection, you enter the variable name in the \q{Variable} box,
enter its value in the \q{Value} box, and press the \q{Add} button.
To remove one from the list, select it in the list box and press
\q{Remove}.
\H{config-proxy} The Proxy panel
\cfg{winhelp-topic}{proxy.main}
@ -2298,15 +2323,13 @@ about public key authentication in SSH.
This key must be in PuTTY's native format (\c{*.PPK}).
\H{config-ssh-tunnels} The Tunnels panel
The Tunnels panel allows you to configure tunnelling of other
connection types through an SSH connection.
\S{config-ssh-x11} X11 forwarding
\H{config-ssh-x11} The X11 panel
\cfg{winhelp-topic}{ssh.tunnels.x11}
The X11 panel allows you to configure forwarding of X11 over an
SSH connection.
If your server lets you run X Window System applications, X11
forwarding allows you to securely give those applications access to
a local X display on your PC.
@ -2320,7 +2343,7 @@ primary local display (\c{:0}) if that fails.
See \k{using-x-forwarding} for more information about X11
forwarding.
\S2{config-ssh-x11auth} Remote X11 authentication
\S{config-ssh-x11auth} Remote X11 authentication
\cfg{winhelp-topic}{ssh.tunnels.x11auth}
@ -2367,10 +2390,13 @@ connections fail.
PuTTY's default is \cw{MIT-MAGIC-COOKIE-1}. If you change it, you
should be sure you know what you're doing.
\S{config-ssh-portfwd} Port forwarding
\H{config-ssh-portfwd} The Tunnels panel
\cfg{winhelp-topic}{ssh.tunnels.portfwd}
The Tunnels panel allows you to configure tunnelling of arbitrary
connection types through an SSH connection.
Port forwarding allows you to tunnel other types of network
connection down an SSH session. See \k{using-port-forwarding} for a
general discussion of port forwarding and how it works.
@ -2453,6 +2479,28 @@ SSH server machine can connect to the forwarded port.) Note that
this feature is only available in the SSH 2 protocol, and not all
SSH 2 servers support it (OpenSSH 3.0 does not, for example).
\S{config-ssh-portfwd-address-family} Selecting Internet protocol
version for forwarded ports
\cfg{winhelp-topic}{ssh.tunnels.portfwd.ipversion}
This switch allows you to select a specific Internet protocol (IPv4
or IPv6) for the local end of a forwarded port. By default, it is
set on \q{Auto}, which means that:
\b for a local-to-remote port forwarding, PuTTY will listen for
incoming connections in both IPv4 and (if available) IPv6
\b for a remote-to-local port forwarding, PuTTY will choose a
sensible protocol for the outgoing connection.
\# FIXME: work out what this paragraph means, reword it for clarity,
\# and reinstate it.
Note that on Windows the address space for IPv4 and IPv6 is
completely disjunct, so listening on IPv6 won't make PuTTY listen on
IPv4. This behaviour may be different on most remote hosts when they
are not operating Windows.
\H{config-ssh-bugs} The Bugs panel
Not all SSH servers work properly. Various existing servers have

View File

@ -68,6 +68,7 @@ use Plink:
\c -A -a enable / disable agent forwarding
\c -t -T enable / disable pty allocation
\c -1 -2 force use of particular protocol version
\c -4 -6 force use of IPv4 or IPv6
\c -C enable compression
\c -i key private key file for authentication
\c -s remote command is an SSH subsystem (SSH-2 only)

View File

@ -55,6 +55,7 @@ use PSCP:
\c -l user connect with specified username
\c -pw passw login with specified password
\c -1 -2 force use of particular SSH protocol version
\c -4 -6 force use of IPv4 or IPv6
\c -C enable compression
\c -i key private key file for authentication
\c -batch disable all interactive prompts

View File

@ -754,6 +754,16 @@ These options are equivalent to selecting your preferred SSH
protocol version as \q{1 only} or \q{2 only} in the SSH panel of the
PuTTY configuration box (see \k{config-ssh-prot}).
\S2{using-cmdline-ipversion} \i\c{-4} and \i\c{-6}: specify an
\i{Internet protocol version}
The \c{-4} and \c{-6} options force PuTTY to use the older Internet
protocol \i{IPv4} or the newer \i{IPv6}.
These options are equivalent to selecting your preferred Internet
protocol version as \q{IPv4} or \q{IPv6} in the Connection panel of
the PuTTY configuration box (see \k{config-address-family}).
\S2{using-cmdline-identity} \i\c{-i}: specify an SSH \i{private key}
The \c{-i} option allows you to specify the name of a private key