1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 09:27:59 +00:00
Commit Graph

806 Commits

Author SHA1 Message Date
Jacob Nevins
6c9b1ffb2b Make docs match code for a couple of settings. 2019-04-19 15:49:05 +01:00
Jacob Nevins
5fd89724d3 Rewrite "Getting started / Logging in".
- Mention public key authentication
 - Define and describe the "terminal window"
 - Mention trust sigils
 - Describe here the lack of feedback in password prompts, as well as in
   the FAQ
2019-04-19 12:08:31 +01:00
Jacob Nevins
464e351c7b Remove most traces of WinHelp support.
Remove the 'winhelp-topic' IDs from the Halibut source, and from the
code. Now we have one fewer name to think of every time we add a
setting.

I've left the HELPCTX system in place, with the vague notion that it
might be a useful layer of indirection for some future help system on a
platform like Mac OS X.

(I've left the putty.hlp target in doc/Makefile, if nothing else because
this is a convenient test case for Halibut's WinHelp support. But the
resulting help file will no longer support context help.)
2019-03-26 00:27:04 +00:00
Jacob Nevins
190761a272 Rework copy/paste documentation a bit.
Try harder to distinguish PuTTY's behaviour when run on Windows and on
Unix.
2019-03-24 13:30:41 +00:00
Jacob Nevins
c7c6bc8f93 Acknowledge Unix pageant. 2019-03-18 23:09:24 +00:00
Jacob Nevins
d7c1f894d6 Acknowledge Windows-on-Arm builds. 2019-03-18 23:08:09 +00:00
Jacob Nevins
c78f59fd9d Document ACL restriction options for Pageant.
These are just cross-references to the existing descriptions in the
"Using PuTTY" section.
2019-03-17 15:17:52 +00:00
Jacob Nevins
6d98399a27 Document Unix puttygen /dev/urandom default.
This changed in 025599ec99 (before 0.71).
2019-03-17 15:08:37 +00:00
Jacob Nevins
627d95e365 Document new Unix Pageant features in 0.71.
Better late than never.
These originated in:
 - e6b06c900f: --gui-prompt, --tty-prompt
 - 4467fa4d2a: --askpass
 - 0603256964: -L
2019-03-17 14:58:55 +00:00
Simon Tatham
abfc751c3e Update version number for 0.71 release. 2019-03-16 12:26:06 +00:00
Simon Tatham
31b4c6ad9c Draft FAQ entries for the spoofing defences. 2019-03-16 12:25:23 +00:00
Simon Tatham
514796b7e4 Add an interactive anti-spoofing prompt in Plink.
At the point when we change over the seat's trust status to untrusted
for the last time, to finish authentication, Plink will now present a
final interactive prompt saying 'Press Return to begin session'. This
is a hint that anything after that that resembles an auth prompt
should be treated with suspicion, because _PuTTY_ thinks it's finished
authenticating.

This is of course an annoying inconvenience for interactive users, so
I've tried to reduce its impact as much as I can. It doesn't happen in
GUI PuTTY at all (because the trust sigil system is used instead); it
doesn't happen if you use plink -batch (because then the user already
knows that they _never_ expect an interactive prompt); and it doesn't
happen if Plink's standard input is being redirected from anywhere
other than the terminal / console (because then it would be pointless
for the server to try to scam passphrases out of the user anyway,
since the user isn't in a position to enter one in response to a spoof
prompt). So it should only happen to people who are using Plink in a
terminal for interactive login purposes, and that's not _really_ what
I ever intended Plink to be used for (which is why it's never had any
out-of-band control UI like OpenSSH's ~ system).

If anyone _still_ doesn't like this new prompt, it can also be turned
off using the new -no-antispoof flag, if the user is willing to
knowingly assume the risk.
2019-03-16 12:25:23 +00:00
Jacob Nevins
a8d3008143 Stop shipping old WinHelp (.HLP) file.
The executables were already ignoring it.

This is a minimal change; PUTTY.HLP can still be built, and there's
still all the context IDs lying around.

Buildscr changes are untested.
2019-03-16 12:25:23 +00:00
Jacob Nevins
adce412122 Rewrite faq-server to acknowledge Uppity. 2019-03-16 00:03:25 +00:00
Jacob Nevins
2795643932 Briefly acknowledge Authenticode on Keys page. 2019-03-15 23:15:07 +00:00
Jacob Nevins
ca90a36bcd Man page documentation of sanitise options.
These were added in commits 91cf47dd0d and 2675f9578d.
2019-02-21 01:00:44 +00:00
Simon Tatham
2675f9578d File transfer tools: sanitise remote filenames and stderr.
This commit adds sanitisation to PSCP and PSFTP in the same style as
I've just put it into Plink. This time, standard error is sanitised
without reference to whether it's redirected (at least unless you give
an override option), on the basis that where Plink is _sometimes_ an
SSH transport for some other protocol, PSCP and PSFTP _always_ are.

But also, the sanitiser is run over any remote filename sent by the
server, substituting ? for any control characters it finds. That
removes another avenue for the server to deliberately confuse the
display.

This commit fixes our bug 'pscp-unsanitised-server-output', aka the
two notional 'vulnerabilities' CVE-2019-6109 and CVE-2019-6110.
(Although we regard those in isolation as only bugs, not serious
vulnerabilities, because their main threat was in hiding the evidence
of a server having exploited other more serious vulns that we never
had.)
2019-02-20 07:27:22 +00:00
Simon Tatham
91cf47dd0d Plink: default to sanitising non-tty console output.
If Plink's standard output and/or standard error points at a Windows
console or a Unix tty device, and if Plink was not configured to
request a remote pty (and hence to send a terminal-type string), then
we apply the new control-character stripping facility.

The idea is to be a mild defence against malicious remote processes
sending confusing escape sequences through the standard error channel
when Plink is being used as a transport for something like git: it's
OK to have actual sensible error messages come back from the server,
but when you run a git command, you didn't really intend to give the
remote server the implicit licence to write _all over_ your local
terminal display. At the same time, in that scenario, the standard
_output_ of Plink is left completely alone, on the grounds that git
will be expecting it to be 8-bit clean. (And Plink can tell that
because it's redirected away from the console.)

For interactive login sessions using Plink, this behaviour is
disabled, on the grounds that once you've sent a terminal-type string
it's assumed that you were _expecting_ the server to use it to know
what escape sequences to send to you.

So it should be transparent for all the use cases I've so far thought
of. But in case it's not, there's a family of new command-line options
like -no-sanitise-stdout and -sanitise-stderr that you can use to
forcibly override the autodetection of whether to do it.

This all applies the same way to both Unix and Windows Plink.
2019-02-20 07:27:22 +00:00
Simon Tatham
2af10ee8d1 Mention 'no VLAs' in the C-standards UDP section.
Now we're enforcing it in the build, it ought to be documented as
well.
2019-01-02 22:14:15 +00:00
Simon Tatham
6de69d001f Update UDP to mention the inttypes.h exception.
Of course this wouldn't have prevented me from making that mistake
myself - it's not as if I carefully re-read the design principles
appendix before writing each code change! - but it might help explain
to _someone_ at some point...
2018-11-22 07:09:06 +00:00
Simon Tatham
d2f79e2544 Update the UDP section about coroutines.
It claimed they were only found in ssh.c, which is no longer true:
after I broke up ssh.c into smaller pieces, they're now found all over
the place.

Also, one of the things I did during that refactoring was to arrange
that each protocol layer's cleanup function (hopefully) reliably frees
everything the coroutine might have allocated and been in the middle
of using, which was something I knew the old code was quite bad at. So
I've mentioned that in the coroutines section too, while I'm here.
2018-11-08 18:40:33 +00:00
Simon Tatham
385b31d9cb Rewrite the UDP section on portability.
I've recently started using several C99 features in PuTTY, after
finally reaching the point where it didn't break my builds to do so,
even on Windows. So it's now outright inaccurate for the documented
design principles to claim that we're sticking to C90.

While I'm here, I've filled in a bit more detail about the assumptions
we do permit.
2018-11-08 18:27:59 +00:00
Jonathan Liu
822d2fd4c3 Add option whether to include header when logging.
It is useful to be able to exclude the header so that the log file
can be used for realtime input to other programs such as Kst for
plotting live data from sensors.
2018-09-26 12:13:01 +01:00
Simon Tatham
6c924ba862 GPG key rollover.
This commit adds the new ids and fingerprints in the keys appendix of
the manual, and moves the old ones down into the historic-keys
section. I've tweaked a few pieces of wording for ongoing use, so that
they don't imply a specific number of past key rollovers.

The -pgpfp option in all the tools now shows the new Master Key
fingerprint and the previous (2015) one. I've adjusted all the uses of
the #defines in putty.h so that future rollovers should only have to
modify the #defines themselves.

Most importantly, sign.sh bakes in the ids of the current release and
snapshot keys, so that snapshots will automatically be signed with the
new snapshot key and the -r option will invoke the new release key.
2018-08-25 14:38:47 +01:00
Jacob Nevins
7d0ade7eac Tweak docs for GSSAPI key exchange. 2018-05-20 13:57:35 +01:00
Simon Tatham
6afa955a2e Option to support VT100 line drawing in UTF-8 mode.
Thanks to Jiri Kaspar for sending this patch (apart from the new docs
section, which is in my own words), which implements a feature we've
had as a wishlist item ('utf8-plus-vt100') for a long time.

I was actually surprised it was possible to implement it in so few
lines of code! I'd forgotten, or possibly never noticed in the first
place, that even in UTF-8 mode PuTTY not only accepts but still
_processes_ all the ISO 2022 control sequences and shift characters,
and keeps running track of all the same state in term->cset and
term->cset_attrs that it tracks in IS0-2022-enabled modes. It's just
that in UTF-8 mode, at the very last minute when a character+attribute
pair is about to be written into the terminal's character buffer, it
deliberately ignores the contents of those variables.

So all that was needed was a new flag checked at that last moment
which causes it not quite to ignore them after all, and bingo,
utf8-plus-vt100 is supported. And it works no matter which ISO 2022
sequences you're using; whether you're using ESC ( 0 to select the
line drawing set directly into GL and ESC ( B to get back when you're
done, or whether you send a preliminary ESC ( B ESC ) 0 to get GL/GR
to be ASCII and line drawing respectively so you can use SI and SO as
one-byte mode switches thereafter, both work just as well.

This implementation strategy has a couple of consequences, which I
don't think matter very much one way or the other but I document them
just in case they turn out to be important later:

 - if an application expecting this mode has already filled your
   terminal window with lqqqqqqqqk, then enabling this mode in Change
   Settings won't retroactively turn them into the line drawing
   characters you wanted, because no memory is preserved in the screen
   buffer of what the ISO 2022 state was when they were printed. So
   the application still has to do a screen refresh.

 - on the other hand, if you already sent the ESC ( 0 or whatever to
   put the terminal _into_ line drawing mode, and then you turn on
   this mode in Change Settings, you _will_ still be in line drawing
   mode, because the system _does_ remember your current ISO 2022
   state at all times, whether it's currently applying it to output
   printing characters or not.
2018-05-12 08:48:20 +01:00
Simon Tatham
223ea4d1e6 Make GSS kex and GSS userauth separately configurable.
The former has advantages in terms of keeping Kerberos credentials up
to date, but it also does something sufficiently weird to the usual
SSH host key system that I think it's worth making sure users have a
means of turning it off separately from the less intrusive GSS
userauth.
2018-04-26 19:15:15 +01:00
Simon Tatham
d944aa4096 Mention SSPI explicitly in the documentation.
This was originally sent in as part of the GSSAPI patch, but I've
extracted into a separate commit because that patch was more than
complicated enough by itself.
2018-04-26 07:21:28 +01:00
Simon Tatham
d515e4f1a3 Support GSS key exchange, for Kerberos 5 only.
This is a heavily edited (by me) version of a patch originally due to
Nico Williams and Viktor Dukhovni. Their comments:

 * Don't delegate credentials when rekeying unless there's a new TGT
   or the old service ticket is nearly expired.

 * Check for the above conditions more frequently (every two minutes
   by default) and rekey when we would delegate credentials.

 * Do not rekey with very short service ticket lifetimes; some GSSAPI
   libraries may lose the race to use an almost expired ticket. Adjust
   the timing of rekey checks to try to avoid this possibility.

My further comments:

The most interesting thing about this patch to me is that the use of
GSS key exchange causes a switch over to a completely different model
of what host keys are for. This comes from RFC 4462 section 2.1: the
basic idea is that when your session is mostly bidirectionally
authenticated by the GSSAPI exchanges happening in initial kex and
every rekey, host keys become more or less vestigial, and their
remaining purpose is to allow a rekey to happen if the requirements of
the SSH protocol demand it at an awkward moment when the GSS
credentials are not currently available (e.g. timed out and haven't
been renewed yet). As such, there's no need for host keys to be
_permanent_ or to be a reliable identifier of a particular host, and
RFC 4462 allows for the possibility that they might be purely
transient and only for this kind of emergency fallback purpose.

Therefore, once PuTTY has done a GSS key exchange, it disconnects
itself completely from the permanent host key cache functions in
storage.h, and instead switches to a _transient_ host key cache stored
in memory with the lifetime of just that SSH session. That cache is
populated with keys received from the server as a side effect of GSS
kex (via the optional SSH2_MSG_KEXGSS_HOSTKEY message), and used if
later in the session we have to fall back to a non-GSS key exchange.
However, in practice servers we've tested against do not send a host
key in that way, so we also have a fallback method of populating the
transient cache by triggering an immediate non-GSS rekey straight
after userauth (reusing the code path we also use to turn on OpenSSH
delayed encryption without the race condition).
2018-04-26 07:21:16 +01:00
Jacob Nevins
c67389e1fb Document 'Permit control characters in pasted text'
And the consequent GUI rearrangements.
2018-03-24 15:35:46 +00:00
Jacob Nevins
36764ffbbe Document Ctrl-Shift-PgUp/PgDn.
This was added in 81345e9a82.
2018-02-04 14:19:31 +00:00
Jacob Nevins
c971c428f3 Update copy and paste documentation.
Rewrite the "Using PuTTY" section for 'clipboard-generality', and also
explain why we default to mouse-based selection, interaction with other
applications via PRIMARY when running PuTTY on Unix, and bracketed-paste
mode. Also add lots of index terms.
2018-02-04 12:27:17 +00:00
Simon Tatham
2a76f8d4a2 Support custom clipboard names under X.
This required me to turn the drop-lists into combo boxes and add an
extra string-typed Conf setting alongside each enumerated value.
2017-12-17 18:49:00 +00:00
Simon Tatham
0e7f0883a9 Add GUI configuration for choice of clipboards.
On all platforms, you can now configure which clipboard the mouse
pastes from, which clipboard Ctrl-Ins and Shift-Ins access, and which
Ctrl-Shift-C and Ctrl-Shift-V access. In each case, the options are:

 - nothing at all
 - a clipboard which is implicitly written by the act of mouse
   selection (the PRIMARY selection on X, CLIP_LOCAL everywhere else)
 - the standard clipboard written by explicit copy/paste UI actions
   (CLIPBOARD on X, the unique system clipboard elsewhere).

Also, you can control whether selecting text with the mouse _also_
writes to the explicitly accessed clipboard.

The wording of the various messages changes between platforms, but the
basic UI shape is the same everywhere.
2017-12-17 17:02:56 +00:00
Simon Tatham
98fa733a96 Move char-class list box out into a new config panel.
This makes space in the Selection panel (at least on Windows; it
wasn't overfull on Unix) to add a new set of config options
controlling the mapping of UI actions to clipboards.

(A possible future advantage of having spare space in this new Words
panel is that there's room to add controls for context-sensitive
special-casing, e.g. I'd quite like ':' to be treated differently when
it appears as part of "http://".)
2017-12-17 16:38:41 +00:00
Simon Tatham
2f9738a282 Make terminal true-colour mode configurable.
I know some users don't like any colour _at all_, and we have a
separate option to turn off xterm-style 256-colour sequences, so it
seems remiss not to have an option to disable true colour as well.
2017-10-05 21:04:23 +01:00
Simon Tatham
ba4837dae8 Add a -restrict-putty-acl option to Windows Pageant.
This causes PuTTY processes spawned from its system-tray menu to run
with the -restrict-acl option (or rather, the synonymous &R prefix
used by my auto-constructed command lines for easier parsing).

The previous behaviour of Pageant was never to pass -restrict-acl to
PuTTY, even when started with -restrict-acl itself; this is not
actually a silly thing to want to do, because Pageant might well have
more need of -restrict-acl than PuTTY (it stores longer-term and more
powerful secrets) and conversely PuTTY might have more need to _not_
restrict its ACL than Pageant (in that among the things enabled by an
unrestricted ACL are various kinds of accessibility software, which is
more useful on the more user-facing PuTTY than on Pageant).

But for those who want to lock everything down with every security
option possible (even though -restrict-acl is only an ad-hoc
precaution and cannot deliver any hard guarantees), this new option
should fill in the UI gap.
2017-09-20 18:24:34 +01:00
Simon Tatham
4ec2791945 Remove Makefile.bor.
After a conversation this week with a user who tried to use it, it's
clear that Borland C can't build the up-to-date PuTTY without having
to make too many compromises of functionality (unsupported API
details, no 'long long' type), even above the issues that could be
worked round with extra porting ifdefs.
2017-09-13 19:26:28 +01:00
Jacob Nevins
25683f0f3d Add a FAQ about servers that don't like IUTF8. 2017-07-12 10:19:23 +01:00
Ion Gaztañaga
309c3dfd95 Add -share -noshare command line option to plink to share SSL connections. 2017-07-08 09:28:20 +01:00
Simon Tatham
3cd10509a5 Update version number for 0.70 release. 2017-07-04 20:29:54 +01:00
Jacob Nevins
05f499e55f Add 'passthrough printing' as an index term. 2017-06-06 09:34:21 +01:00
Jacob Nevins
e5dd1435e2 Remove FAQ about Plink on Win95.
While it's still true, the link to Winsock 2 is dead, our standard
release builds don't run on Win95 any more, and it's certainly not
frequently asked.
2017-05-23 23:45:19 +01:00
Jacob Nevins
22cf2823d1 Remove some ancient cruft from the FAQ.
- I haven't heard of OpenSSH/OpenSSL mismatches being a common problem
   for a long time. Specific advice about OpenSSH 3.1/3.4 seems unlikely
   to be useful these days.
 - "Incorrect MAC received on packet" doesn't seem to be a common
   problem these days, and if anyone encounters it, the words in the
   "Errors" bit of the docs seem adequate without a FAQ entry as well.
2017-05-23 23:13:17 +01:00
Simon Tatham
93931b0a56 Switch to using Halibut's new direct .CHM generation.
This allows me to remove HTML Help Workshop completely from my build
dependencies, and good riddance!
2017-05-13 18:51:10 +01:00
Simon Tatham
6ea9d36ae9 Switch chiark URLs to https. 2017-05-07 16:29:01 +01:00
Jacob Nevins
fb023da0fd Be less vague in the description of IUTF8. 2017-04-30 10:42:02 +01:00
Jacob Nevins
ed600ab23f Fix double negative in TTY mode docs. 2017-04-29 14:24:17 +01:00
Simon Tatham
b1829b81b5 Update version number for 0.69 release. 2017-04-24 14:45:52 +01:00
klemens
89fff90de7 Spelling fixes (just in comments).
As found by a bot ( http://www.misfix.org,
https://github.com/ka7/misspell_fixer ).
2017-04-15 17:47:10 +01:00
Jacob Nevins
2d0b2e97d0 Restore ability to not send SSH terminal modes.
2ce0b680c inadvertently removed this ability in trying to ensure that
everyone got the new IUTF8 mode by default; you could remove a mode from
the list in the UI, but this would just revert PuTTY to its default.

The UI and storage have been revamped; the storage format now explicitly
says when a mode is not to be sent, and the configuration UI always
shows all modes known to PuTTY; if a mode is not to be sent it now shows
up as "(don't send)" in the list.

Old saved settings are migrated so as to preserve previous removals of
longstanding modes, while automatically adding IUTF8.

(In passing, this removes a bug where pressing the 'Remove' button of
the previous UI would populate the value edit box with garbage.)
2017-03-06 10:36:26 +00:00
Simon Tatham
359b5c8eb4 Merge the 0.68 release branchlet to master.
Conflicts in the FAQ are fixed by incorporating Jacob's rewritten
post-0.68 version. (But owing to considerable git confusion I haven't
managed to get his name on to this commit anywhere.)
2017-02-20 20:52:41 +00:00
Jacob Nevins
bd65d47792 New FAQ entry for 32-bit vs 64-bit. 2017-02-19 16:46:23 +00:00
Jacob Nevins
efb4996d31 Unix settings can live elsewhere than ~/.putty. 2017-02-18 23:39:14 +00:00
Jacob Nevins
23841fd85e pocketputty.net seems linksquatted.
Get rid of the non-nofollow link in the FAQ. (I doubt anyone's that
interested any more, anyway.)
2017-02-18 23:39:14 +00:00
Simon Tatham
23fbc4f56b Update version number for 0.68 release.
This commit also updates the dumps of Plink's and PSCP's help output,
adding the -proxycmd option to both and the -shareexists option to
Plink.

(Or rather, _re_-adding the latter, since it was introduced in error
by commit 07af4ed10 due to a branch management error and hastily
removed again in 29e8c24f9. This time it really does match reality.)
2017-02-18 17:09:38 +00:00
Jacob Nevins
946b26742a Clear out more XXX-REVIEW-BEFORE-RELEASE. 2017-02-18 17:09:37 +00:00
Simon Tatham
00bcf6ecbc Update documentation for 0.68.
Several places in the docs were labelled for review because they need
to change when 0.68's feature set comes in - no SSH-2 to SSH-1
fallback any more, but on the other hand, Unix Pageant now exists.
2017-02-18 17:09:37 +00:00
Jacob Nevins
4b372b0877 Fix a broken gitweb link. 2017-02-18 09:19:24 +00:00
Jacob Nevins
8d48caa849 Note the interaction of jump lists and -cleanup.
Also note that recent installers don't prompt to -cleanup (this started
with 0.67's MSI installer).
2017-02-17 00:03:11 +00:00
Jacob Nevins
2e5212fb41 Document VS2015 impact on very old Windows.
(In a XXX-REVIEW-BEFORE-RELEASE form.)

Also, note the effect of compilation with different Visual Studio
versions on Windows version compatibility in the source README, for the
sake of having it written down somewhere.
2017-02-16 23:47:03 +00:00
Jacob Nevins
2718165f01 Remove references to "Win32" and "32-bit Windows".
They were there mainly to distinguish from 16-bit Windows, which hasn't
been a thing since before a noticeable fraction of the userbase were
born, probably. These days the obvious comparison is with 64-bit
Windows.

Also tweak some wording to reflect that official PuTTY executables are
not necessarily 32-bit any more, and add some XXX-REVIEW-BEFORE-RELEASE
in the same vein.
2017-02-15 23:58:25 +00:00
Jacob Nevins
33f4c8303f Document proxy logging control.
(This was added in 7c65b9c57.)
2017-02-11 23:30:52 +00:00
Jacob Nevins
b14c3443d3 Document -proxycmd in help and man pages.
Also, in the main documentation, note the hazard that backslashes in the
command argument must be doubled.
2017-02-11 23:03:46 +00:00
Jacob Nevins
def7d9a3f6 Add 'plink -shareexists' to man page. 2017-02-11 22:08:06 +00:00
Jacob Nevins
bb97e17473 Fix missing options in man pages.
None of them documented -4, -6, -noagent, or -agent.
Ask document 'plink -nc host:port'.
2017-02-11 22:04:41 +00:00
Jacob Nevins
bee656c1b0 Document cmdgen ability to read public-only keys.
(This was added in 3935cc3af.)
2017-02-11 21:12:16 +00:00
Jacob Nevins
df441398ab Update man page for puttygen --random-device. 2017-02-11 20:39:27 +00:00
Jacob Nevins
72c3c23ebd Document '-restrict-acl' vs subprocesses.
(Since we've thought about it.)
2017-02-04 12:12:18 +00:00
Jacob Nevins
e4ad487fec Reference '-proxycmd' from main local proxy docs. 2017-02-04 12:05:14 +00:00
Simon Tatham
e22120fea8 Turn off Windows process ACL restriction by default.
As documented in bug 'win-process-acl-finesse', we've had enough
assorted complaints about it breaking various non-malicious pieces of
Windows process interaction (ranging from git->plink integration to
screen readers for the vision-impaired) that I think it's more
sensible to set the process back to its default level of protection.

This precaution was never a fully effective protection anyway, due to
the race condition at process startup; the only properly effective
defence would have been to prevent malware running under the same user
ID as PuTTY in the first place, so in that sense, nothing has changed.
But people who want the arguable defence-in-depth advantage of the ACL
restriction can now turn it on with the '-restrict-acl' command-line
option, and it's up to them whether they can live with the assorted
inconveniences that come with it.

In the course of this change, I've centralised a bit more of the
restriction code into winsecur.c, to avoid repeating the error
handling in multiple places.
2017-01-29 23:08:19 +00:00
Simon Tatham
fa91b55eec Make ESC[3J (clear scrollback) a disableable escape sequence.
A user complained that it was being done nonconsensually, and it seems
reasonable that the user should have the choice to prevent it.
2016-11-17 20:25:27 +00:00
Jacob Nevins
1de7240eb8 Document SSH IUTF8 mode. 2016-05-07 11:36:55 +01:00
Simon Tatham
e65e5d165f Add a '-proxycmd' command-line option.
This is equivalent to selecting 'Local' as the proxy type and entering
the argument string in the proxy command box, in the GUI.

I've pulled this out of all the other proxy options to promote to a
named command-line option, partly because it's the proxy option with
the most natural command-line expression in the first place (any shell
command you might want to use is already in the form of a single
string), and also because it has uses beyond end-user proxying
applications: in particular, replacing the network connection with a
local process is a convenient way to do testing in the style of
contrib/samplekex.py, avoiding the need to run a separate command to
make the test 'server' listen on a port.
2016-05-03 15:59:15 +01:00
Jacob Nevins
34add87ad2 Put DH group1-sha1 KEX below 'warn' by default.
Also try to upgrade the settings of people who haven't changed the
defaults; but anyone who has, or anyone who's used the pre-release
snapshots with elliptic-curve support, will have to review their
settings manually.
2016-04-10 19:35:08 +01:00
Jacob Nevins
16dfefcbde Stop supporting fallback between SSH versions.
The UI now only has "1" and "2" options for SSH protocol version, which
behave like the old "1 only" and "2 only" options; old
SSH-N-with-fallback settings are interpreted as SSH-N-only.

This prevents any attempt at a protocol downgrade attack.
Most users should see no difference; those poor souls who still have to
work with SSH-1 equipment now have to explicitly opt in.
2016-04-02 12:46:04 +01:00
Jacob Nevins
df93419ae5 More modern examples of ports we don't have. 2016-03-28 19:18:46 +01:00
Jacob Nevins
a1e622523e Remove call for help with a Windows 3 port.
I think that in fact we would not welcome this at this point in time.
2016-03-28 19:18:46 +01:00
Jacob Nevins
03cf73ac01 We will soon have Pageant for Unix. 2016-03-28 19:18:46 +01:00
Jacob Nevins
17377cfa82 Tweaks re Mac elsewhere in FAQ after bb6dd98. 2016-03-28 19:18:46 +01:00
Jacob Nevins
f4713d37b8 Tweak Unix bits of FAQ after 776a31b. 2016-03-28 19:18:41 +01:00
Jacob Nevins
c755999a95 Fix punctuation. 2016-03-28 17:24:23 +01:00
Simon Tatham
caaaf686f5 Mention the Secure Contact Key on the Feedback page.
Both in a new section about reporting vulnerabilities, and in the
section about large attachments (since some large attachments will
surely contain confidential information from the sender).
2016-03-27 20:20:03 +01:00
Simon Tatham
c5021a121b Update docs and FAQ for current DSA policy.
I think the deterministic DSA system we've been using for ages can now
be considered proven in use, not to mention the fact that RFC 6979 and
the Ed25519 spec both give variants on the same idea. So I've removed
the 'don't use DSA if you can avoid it' warning.
2016-03-27 20:10:56 +01:00
Jacob Nevins
031a65e44d Examples in man pages for '-fn' option.
I was confused by '-fn Monospace' not working (it needs a font size).
2016-03-27 11:33:21 +01:00
Jacob Nevins
97245ec23b Missed a host key doc cross-reference.
Also, fix a mangled sentence.
2016-03-27 10:57:25 +01:00
Jacob Nevins
15386cbe92 Cross-reference all the host key docs.
And tweak some of the words a bit.
2016-03-26 17:38:49 +00:00
Simon Tatham
fc77fa0b8b Support sh/csh syntax switching for Unix Pageant. 2016-03-25 16:43:59 +00:00
Simon Tatham
d06098622c Configurable preference list for SSH host key types.
Now we actually have enough of them to worry about, and especially
since some of the types we support are approved by organisations that
people might make their own decisions about whether to trust, it seems
worth having a config list for host keys the same way we have one for
kex types and ciphers.

To make room for this, I've created an SSH > Host Keys config panel,
and moved the existing host-key related configuration (manually
specified fingerprints) into there from the Kex panel.
2016-03-25 16:32:17 +00:00
Jacob Nevins
28f67586f5 Document host key cross-certification. 2016-03-25 15:43:28 +00:00
Jacob Nevins
de24c12e46 Logical host name: minor rewording. 2016-03-25 15:43:28 +00:00
Jacob Nevins
98e5eeedd1 Demote SSH bypass-auth option; downplay in docs.
It's too esoteric to be the first thing on the Auth panel; I've never
heard of any SSH server that supports it in the decade since I
implemented it. The only Google hits are lost souls mistakenly believing
they need it for passwordless public-key login and the like.
2016-03-25 15:43:28 +00:00
Jacob Nevins
e74f19cb6f Emphasise that agent forwarding exposes all keys.
(A bit.)
2016-03-25 13:15:57 +00:00
Jacob Nevins
8b4c43d6d2 Docs: character sets are awful. 2016-03-25 13:15:51 +00:00
Jacob Nevins
4782d0db91 Cross-reference Event Log and logfile docs. 2016-03-25 13:15:43 +00:00
Simon Tatham
bb6dd987ee Rewrite the FAQ entry about the MacOS port. 2016-03-25 08:46:34 +00:00
Jacob Nevins
45bea43adf Document pageant interoperability with OpenSSH etc 2016-03-19 23:43:21 +00:00
Jacob Nevins
cbf6a22994 Clarify Unix Pageant passphrase prompting docs.
Terminal prompting takes precedence over GUI prompting, so explicitly
state that in the docs.
2016-03-19 23:43:21 +00:00
Jacob Nevins
a3529a474c Use more modern example keys in Pageant docs. 2016-03-19 23:43:21 +00:00
Jacob Nevins
4b8a86b1ac Fix typo in pageant(1). 2016-03-19 23:43:21 +00:00
Jacob Nevins
2aa8d81c2d Document that -i etc now accept public key files.
(This was added in 4204a53.)
2016-03-19 23:43:21 +00:00
Jacob Nevins
91653a10c6 Fix punctuation in public key docs. 2016-03-19 23:43:21 +00:00
Simon Tatham
0fadffe0cb Add command-line passphrase-file options to command-line PuTTYgen.
Patch due to Colin Watson.

Putting the passphrase in a file avoids exposing it to 'ps' which can
print out every process's command line, while at the same time not
being as platform-specific as the approach of providing an fd number
(since cmdgen.c is in principle a potential cross-platform PuTTYgen,
not just a Unix one, which is why it's not in the 'unix' directory).

Of course it introduces its own risks if someone can read the file
from your disk after you delete it; probably the best approach to
avoiding this, if possible, is to point the option at a file on an
in-memory tmpfs type file system. Or better still, use bash-style
/dev/fd options such as

  puttygen --new-passphrase <(echo -n "my passphrase") [options]

Failing that, try a secure file-wipe utility, as the man page change
mentions.

(And a use case not to be overlooked, of course, is the one where you
actually want to generate an unprotected key - in which case, just
pass /dev/null as the filename.)
2016-03-17 18:55:57 +00:00
Simon Tatham
984fe3dde8 Merge branch 'pre-0.67' 2016-02-29 19:59:59 +00:00
Simon Tatham
830b7f8898 Update version number for 0.67 release. 2016-02-29 19:59:59 +00:00
Simon Tatham
29e8c24f90 Remove spurious -shareexists reference in Plink docs.
That option does exist, but only on master; it was not in the 0.66
release. It turned up by mistake when I updated the documentation copy
of the Plink online help while preparing the 0.66 release, because I
ran plink from the wrong branch.

The new release automation should stop that kind of mistake from
happening in future.
2016-02-29 19:59:37 +00:00
Simon Tatham
5ee166aab6 Mention the new Secure Contact Key in the GPG docs appendix.
The reporter of vuln-pscp-sink-sscanf asked for a key to encrypt the
vulnerability report with, and having generated one, it seemed like a
good idea to make it part of the official PuTTY GPG key set and
publish it for the next person to use.
2016-02-29 19:59:37 +00:00
Simon Tatham
329cd91959 Autogenerate licence text in doc subdir from LICENCE.
Now we have licence.pl, it seems to me to make very good sense to have
it generate the Halibut form(s) of the licence and copyright year as
well as the source-code forms.

As a result, I believe _no_ copies of the licence text or copyright
date exist any more except for the master one in LICENCE - so I can
completely remove the checklist section about all the places to update
it, because there's only one. Hooray!

(cherry picked from commit 774d37a0dc)

Conflicts:
	doc/licence.but

(cherry-picker's note: the conflict was just because the deleted file
didn't have identical contents)
2016-02-29 19:59:35 +00:00
Jacob Nevins
906f8ed262 Document 'Cannot assign requested address' error.
Often it means you tried to connect to port 0.

(cherry picked from commit c4f963ebd7)
2016-02-29 19:59:33 +00:00
Jacob Nevins
ac9862ec91 Rationalise and document log options somewhat.
TOOLTYPE_NONNETWORK (i.e. pterm) already has "-log" (as does Unix
PuTTY), so there's no sense suppressing the synonym "-sessionlog".

Undocumented lacunae that remain:

plink accepts -sessionlog, but does nothing with it. Arguably it should.

puttytel accepts -sshlog/-sshrawlog (and happily logs e.g. Telnet
negotiation, as does PuTTY proper).

(cherry picked from commit a454399ec8)

Conflicts:
	unix/uxplink.c
	windows/winplink.c

(cherry-picker's notes: the conflict was only contextual, in the Plink
help output)
2016-02-29 19:59:32 +00:00
Simon Tatham
774d37a0dc Autogenerate licence text in doc subdir from LICENCE.
Now we have licence.pl, it seems to me to make very good sense to have
it generate the Halibut form(s) of the licence and copyright year as
well as the source-code forms.

As a result, I believe _no_ copies of the licence text or copyright
date exist any more except for the master one in LICENCE - so I can
completely remove the checklist section about all the places to update
it, because there's only one. Hooray!
2015-12-22 13:33:42 +00:00
Jacob Nevins
c4f963ebd7 Document 'Cannot assign requested address' error.
Often it means you tried to connect to port 0.
2015-11-21 12:21:31 +00:00
Jacob Nevins
a454399ec8 Rationalise and document log options somewhat.
TOOLTYPE_NONNETWORK (i.e. pterm) already has "-log" (as does Unix
PuTTY), so there's no sense suppressing the synonym "-sessionlog".

Undocumented lacunae that remain:

plink accepts -sessionlog, but does nothing with it. Arguably it should.

puttytel accepts -sshlog/-sshrawlog (and happily logs e.g. Telnet
negotiation, as does PuTTY proper).
2015-11-08 11:58:45 +00:00
Simon Tatham
8fdeb3a95c Merge tag '0.66'
This brings in the rest of the 0.66 branch, including some changes new
on master.

Conflicts:
        doc/plink.but
        sshrsa.c

(The conflicts were both trivial: in one, the addition of an extra
parameter to rsa2_newkey on master happened on the line next to 0.66's
addition of a check for NULL return value, and in the other, I'd got
the version number in the plink -h transcript messed up on master.)
2015-11-07 09:54:05 +00:00
Simon Tatham
07af4ed100 Update version number for 0.66 release. 2015-11-07 09:53:03 +00:00
Simon Tatham
986b8f87be Document the new session-logging command line options.
If I'm going to announce them as a feature in 0.66, it would be
embarrassing to forget to mention them in the documentation.
2015-11-07 09:53:03 +00:00
Jacob Nevins
7552ddb002 PuTTYgen's default hasn't been 1024 bits since 0.63.
(cherry picked from commit 9f9d72ec58)
2015-10-29 09:27:55 +00:00
Simon Tatham
72b659cb72 Add a FAQ for 'checksum mismatch' reports.
The aim is to try to reduce the incidence of the two least helpful
classes of those reports: the ones which have just got mismatched
checksum files, and the ones which don't tell us the information that
would help.

(cherry picked from commit 8ff3b22243)
2015-10-29 09:27:53 +00:00
Jacob Nevins
48eafd66aa Update docs/usage for 'plink -shareexists'. 2015-10-22 01:48:35 +01:00
Jacob Nevins
9dd9860cc8 Update docs for Ed25519 and ChaCha20-Poly1305. 2015-10-22 01:48:02 +01:00
Jacob Nevins
9f9d72ec58 PuTTYgen's default hasn't been 1024 bits since 0.63. 2015-10-22 01:46:28 +01:00
Simon Tatham
4252cdbd82 Key rollover: cut and paste errors in pgpkeys.but.
What should have been links to the old DSA keys were actually a second
copy of the links to the old RSA ones. Ahem.

(cherry picked from commit b62af0f40a)
2015-10-17 17:30:17 +01:00
Simon Tatham
a063e52297 Key rollover: rewrite the PGP keys manual appendix.
This gives pride of place to the new set of keys we've recently
generated, and relegates the old ones to an afterthought.

(cherry picked from commit bb68baf53b)
2015-10-17 17:30:17 +01:00
Simon Tatham
417421cace New formatting directive in logfile naming: &P for port number.
Users have requested this from time to time, for distinguishing log
file names when there's more than one SSH server running on different
ports of the same host. Since we do take account of that possibility
in other areas (e.g. we cache host keys indexed by (host,port) rather
than just host), it doesn't seem unreasonable to do so here too.

(cherry picked from commit 0550943b51)
2015-10-17 17:30:17 +01:00
Simon Tatham
b62af0f40a Key rollover: cut and paste errors in pgpkeys.but.
What should have been links to the old DSA keys were actually a second
copy of the links to the old RSA ones. Ahem.
2015-09-03 19:04:26 +01:00
Simon Tatham
bb68baf53b Key rollover: rewrite the PGP keys manual appendix.
This gives pride of place to the new set of keys we've recently
generated, and relegates the old ones to an afterthought.
2015-09-02 18:50:49 +01:00
Simon Tatham
b8dd15b8ff Stop using abs(unsigned) in X11 time comparison.
The validation end of XDM-AUTHORIZATION-1 needs to check that two
time_t values differ by at most XDM_MAXSKEW, which it was doing by
subtracting them and passing the result to abs(). This provoked a
warning from OS X's clang, on the reasonable enough basis that the
value passed to abs was unsigned.

Fixed by using the (well defined) unsigned arithmetic wraparound: to
check that the mathematical difference of two unsigned numbers is in
the interval [-k,+k], compute their difference _plus k_ as an
unsigned, and check the result is in the interval [0,2k] by doing an
unsigned comparison against 2k.
2015-08-27 18:44:51 +01:00
Simon Tatham
8ff3b22243 Add a FAQ for 'checksum mismatch' reports.
The aim is to try to reduce the incidence of the two least helpful
classes of those reports: the ones which have just got mismatched
checksum files, and the ones which don't tell us the information that
would help.
2015-08-09 21:18:27 +01:00
Simon Tatham
0550943b51 New formatting directive in logfile naming: &P for port number.
Users have requested this from time to time, for distinguishing log
file names when there's more than one SSH server running on different
ports of the same host. Since we do take account of that possibility
in other areas (e.g. we cache host keys indexed by (host,port) rather
than just host), it doesn't seem unreasonable to do so here too.
2015-08-08 13:35:44 +01:00
Simon Tatham
b266d671ac Merge tag '0.65' 2015-07-25 10:55:34 +01:00
Simon Tatham
7cfe83f791 Bump version number for 0.65 release. 2015-07-25 10:54:57 +01:00
Simon Tatham
51ee4eb144 Divide the Bugs panel in half.
It overflowed as a result of the previous commit.

(cherry picked from commit 84e239dd88)
2015-06-20 09:31:55 +01:00
Simon Tatham
318076a183 Support RFC 4419.
PuTTY now uses the updated version of Diffie-Hellman group exchange,
except for a few old OpenSSH versions which Darren Tucker reports only
support the old version.

FIXME: this needs further work because the Bugs config panel has now
overflowed.

(cherry picked from commit 62a1bce7cb)
2015-06-20 09:31:55 +01:00
Jacob Nevins
74f50c9f21 Move kh2reg.py link from svn to git.
(cherry picked from commit 06d2fb5b37)
2015-06-20 09:31:54 +01:00
Simon Tatham
5ea2f3065e Unix Pageant: man page and online help.
I think Unix Pageant is now more or less usable, though of course I
wouldn't blame anyone for sticking with other SSH agent solutions.
2015-05-19 18:24:04 +01:00
Simon Tatham
84e239dd88 Divide the Bugs panel in half.
It overflowed as a result of the previous commit.
2015-04-25 10:54:18 +01:00
Simon Tatham
62a1bce7cb Support RFC 4419.
PuTTY now uses the updated version of Diffie-Hellman group exchange,
except for a few old OpenSSH versions which Darren Tucker reports only
support the old version.

FIXME: this needs further work because the Bugs config panel has now
overflowed.
2015-04-25 10:54:18 +01:00
Jacob Nevins
06d2fb5b37 Move kh2reg.py link from svn to git. 2015-03-01 12:27:27 +00:00
Jacob Nevins
80bd6a01aa Minimal documentation for ECDSA/ECDH support. 2015-02-28 19:08:15 +00:00
Simon Tatham
808e414130 Merge branch 'pre-0.64' 2015-02-28 07:57:58 +00:00
Simon Tatham
2713396c91 Bump version number for 0.64 release. 2015-02-28 07:57:35 +00:00
Jacob Nevins
ced3a46c3f Merge branch 'pre-0.64' 2015-01-18 14:50:20 +00:00
Jacob Nevins
8dedf59080 Remove user-key-oriented advice from host key docs.
It would be rare to have a host keypair in .ppk format or on a client
machine to load into PuTTYgen, and it might confuse people into thinking
they are required to do so.
2015-01-18 14:50:08 +00:00
Jacob Nevins
5904545cc1 Merge branch 'pre-0.64' 2015-01-05 23:49:25 +00:00
Jacob Nevins
bff08a95e7 It's a new year. 2015-01-05 23:48:11 +00:00
Simon Tatham
d23c0972cd Merge branch 'pre-0.64' 2014-11-22 16:42:01 +00:00
Simon Tatham
8c09f85a64 Stop referring to Plink as "PuTTY Link".
I don't think anyone has ever actually called it that, colloquially
_or_ formally, and if anyone ever did (in a bug report, say) I'd
probably have to stop and think to work out what they meant. It's
universally called Plink, and should be officially so as well :-)
2014-11-22 16:39:25 +00:00
Jacob Nevins
8ab1433caa Merge another docs fix from 'pre-0.64'. 2014-11-08 23:38:52 +00:00
Jacob Nevins
aad5f5601d Document IPv6 literal syntax for tunnels. 2014-11-08 23:37:59 +00:00
Jacob Nevins
3b4f3266d8 Merge SSH-2-only default from 'pre-0.64'. 2014-11-08 19:35:57 +00:00