1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-25 01:02:24 +00:00
putty-source/windows
Simon Tatham 8a2883933d Windows Pageant: integrate with Windows OpenSSH.
After a discussion with a user recently, I investigated the Windows
native ssh.exe, and found it uses a Windows named pipe to talk to its
ssh-agent, in exactly the same way Pageant does. So if you tell
ssh.exe where to find Pageant's pipe, it can talk directly to Pageant,
and then you can have just one SSH agent.

The slight problem is that Pageant's pipe name is not stable. It's
generated using the same system as connection-sharing pipe names, and
contains a hex hash value whose preimage was fed through
CryptProtectData. And the problem with _that_ is that CryptProtectData
apparently reinitialises its seed between login sessions (though it's
stable within a login session), which I hadn't fully realised when I
reused the same pipe-name construction code.

One possibility, of course, would be to change Pageant so that it uses
a fixed pipe name. But after a bit of thought, I think I actually like
this feature, because the Windows named pipe namespace isn't
segregated into areas writable by only particular users, so anyone
using that namespace on a multiuser Windows box is potentially
vulnerable to someone else squatting on the name you wanted to use.
Using this system makes that harder, because the squatter won't be
able to predict what the name is going to be! (Unless you shut down
Pageant and start it up again within one login session - but there's
only so much we can do. And squatting is at most a DoS, because
PuTTY's named-pipe client code checks ownership of the other end of
the pipe in all cases.)

So instead I've gone for a different approach. Windows Pageant now
supports an extra command-line option to write out a snippet of
OpenSSH config file format on startup, containing an 'IdentityAgent'
directive which points at the location of its named pipe. So you can
use the 'Include' directive in your main .ssh/config to include this
extra snippet, and then ssh.exe invocations will be able to find
wherever the current Pageant has put its pipe.
2022-01-15 18:54:31 +00:00
..
utils Windows Pageant and PuTTYgen: spiff up option parsing. 2022-01-15 18:27:19 +00:00
agent-client.c Move agent_named_pipe_name into its own source file. 2022-01-03 12:12:05 +00:00
cliloop.c Reorganise Windows HANDLE management. 2021-05-24 15:27:38 +01:00
CMakeLists.txt Windows Pageant and PuTTYgen: spiff up option parsing. 2022-01-15 18:27:19 +00:00
config.c Initial support for in-process proxy SSH connections. 2021-05-22 14:13:52 +01:00
conpty.c Add memsets after allocation of all Backend implementors. 2021-10-30 17:28:28 +01:00
console.c Richer data type for interactive prompt results. 2021-12-28 18:08:31 +00:00
controls.c Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
cryptoapi.h Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
dialog.c Richer data type for interactive prompt results. 2021-12-28 18:08:31 +00:00
gss.c Avoid crash in MIT Kerberos for Windows on session restart. 2021-07-01 18:59:44 +01:00
handle-io.c handle_write_eof: delegate CloseHandle back to the client. 2021-09-30 19:16:20 +01:00
handle-socket.c Allow creating FdSocket/HandleSocket before the fds/handles. 2021-12-22 15:45:41 +00:00
handle-wait.c Fix an unused variable. 2021-05-27 09:48:32 +01:00
help.c Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
help.h New config option for shifted arrow key handling. 2021-10-18 20:15:35 +01:00
help.rc2 Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
installer.wxs Configurable CHM path in installer source. 2021-05-03 17:01:55 +01:00
jump-list.c Fix a batch of typos in comments and docs. 2022-01-03 06:40:51 +00:00
local-proxy.c Rewrite local-proxy system to allow interactive prompts. 2021-12-22 15:45:41 +00:00
make_install_images.sh Remove white dialog background in MSI user interface. 2020-06-21 16:39:47 +01:00
msifixup.py Remove white dialog background in MSI user interface. 2020-06-21 16:39:47 +01:00
named-pipe-client.c Move proxy-related source files into a subdirectory. 2021-10-30 17:29:24 +01:00
named-pipe-server.c Move proxy-related source files into a subdirectory. 2021-10-30 17:29:24 +01:00
network.c New API for plug_closing() with a custom type enum. 2021-11-06 14:48:26 +00:00
no-jump-list.c Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
nohelp.c Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
noise.c Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
pageant-rc.h winpgnt: say 'click to focus' in async passphrase prompt. 2021-04-22 20:00:46 +01:00
pageant.c Windows Pageant: integrate with Windows OpenSSH. 2022-01-15 18:54:31 +00:00
pageant.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
pageant.mft Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
pageant.rc Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
pageants.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
platform.h Windows Pageant and PuTTYgen: spiff up option parsing. 2022-01-15 18:27:19 +00:00
plink.c Richer data type for interactive prompt results. 2021-12-28 18:08:31 +00:00
plink.rc `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
printing.c Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
pscp.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
pscp.rc `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
psftp.rc `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
psocks.c Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
pterm.c New config option for shifted arrow key handling. 2021-10-18 20:15:35 +01:00
pterm.ico Make Windows versions of the pterm icons. 2021-05-08 17:33:25 +01:00
pterm.rc New application: a Windows version of 'pterm'! 2021-05-08 17:51:27 +01:00
ptermcfg.ico Make Windows versions of the pterm icons. 2021-05-08 17:33:25 +01:00
putty-common.rc2 Mention the host name in host-key prompts. 2021-09-16 14:33:59 +01:00
putty-rc.h Mention the host name in host-key prompts. 2021-09-16 14:33:59 +01:00
putty.c Move some parts of window.c into putty.c. 2021-05-08 17:20:50 +01:00
putty.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
putty.mft Windows 10: add per monitor DPI awareness support. 2021-04-02 19:04:19 +01:00
putty.rc Move icon declarations out of putty-common.rc2. 2021-05-08 17:33:25 +01:00
puttycfg.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
puttygen-rc.h PuTTYgen: option to control Argon2 flavour. 2021-02-23 18:26:50 +00:00
puttygen.c Windows PuTTYgen: support cmdgen's key-type and PPK options. 2022-01-15 18:54:07 +00:00
puttygen.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
puttygen.mft Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
puttygen.rc Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
puttyins.ico `installer.ico' doesn't fit into 8.3, so gets truncated to INSTALLE.ICO in 2007-02-06 22:39:15 +00:00
puttytel.mft Windows 10: add per monitor DPI awareness support. 2021-04-02 19:04:19 +01:00
puttytel.rc Move icon declarations out of putty-common.rc2. 2021-05-08 17:33:25 +01:00
rcstuff.h Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
README-msi.txt Remove note about .CHM on network drives. 2019-03-18 21:53:45 +00:00
security-api.h Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
select-cli.c Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
select-gui.c Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
serial.c Add memsets after allocation of all Backend implementors. 2021-10-30 17:28:28 +01:00
sftp.c Richer data type for interactive prompt results. 2021-12-28 18:08:31 +00:00
sharing.c Windows: factor out mutex lock/unlock from sharing.c. 2022-01-03 12:12:05 +00:00
sizetip.c Formatting change to braces around one case of a switch. 2020-02-16 11:26:21 +00:00
storage.c Generalise strbuf_catf() into put_fmt(). 2021-11-19 11:32:47 +00:00
unicode.c Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
version.rc2 FIXME about Windows resource CHMfulness hint. 2019-03-18 22:02:13 +00:00
website.url Switch chiark URLs to https. 2017-05-07 16:29:01 +01:00
win-gui-seat.h Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
window.c Windows: make 'resize by changing font' work again. 2022-01-08 14:04:51 +00:00
x11.c Rename most of the platform source files. 2021-04-26 18:00:01 +01:00