48 Commits

Author SHA1 Message Date
Tess Gauthier
f72324ffa1
disable adding pkcs11 providers to ssh-agent remotely unless overridden by cli arg (#699) 2023-10-11 16:39:05 -04:00
Dan Drown
59d91246b4
support SSH2_AGENTC_ADD_ID_CONSTRAINED for sk-provider@openssh.com (#612)
* support SSH2_AGENTC_ADD_ID_CONSTRAINED by treating it as SSH2_AGENTC_ADD_IDENTITY

This ignores the requested constraints:
- SSH_AGENT_CONSTRAIN_LIFETIME
- SSH_AGENT_CONSTRAIN_CONFIRM
- SSH_AGENT_CONSTRAIN_MAXSIGN
- SSH_AGENT_CONSTRAIN_EXTENSION

SSH2_AGENTC_ADD_ID_CONSTRAINED is needed to support add U2F/Fido2 ssh keys to the agent from WSL ssh-add and KeePassXC
ref PowerShell/Win32-OpenSSH#1961

* update buffer pointer to after comment string

sshbuf_peek_string_direct doesn't update request offset pointer

* parse agent constraint messages

returns SSH_AGENT_FAILURE on unsupported constraint types, such as:
* SSH_AGENT_CONSTRAIN_LIFETIME
* SSH_AGENT_CONSTRAIN_CONFIRM
* SSH_AGENT_CONSTRAIN_MAXSIGN

returns SSH_AGENT_FAILURE on unsupported constrain extensions, such as:
"restrict-destination-v00@openssh.com"

accepts and ignores constrain extension "sk-provider@openssh.com"

* reject non-internal skproviders & log
2023-04-05 16:28:10 -04:00
Tess Gauthier
76af8559d9
additional codeql fixes (#644)
* first pass at some codeql fixes

* address review feedback
2022-12-02 13:35:38 -05:00
Tess Gauthier
11e2996573
address codeQL warnings (#598)
* codeql fixes

* fix type mismatches

* fix pointers in w32_time methods

* fixes for codeQL warnings

* modify checks for codeql warnings

* add comments for codeql suppressions

* additional codeql fixes and suppressions

* add codeql fixes

* add comments for codeql

* add comments for codeql

* switch from debug to error log messages

* fix another merge conflict

fix line endings in gss-sspi.c

* add null check in channels.c

* address PR feedback

* address additional review feedback

* add CodeQL comments to common code

* fix unittest-win32compat

* fix unit test

* address review feedback

* remove suppression
2022-11-30 11:57:01 -05:00
Balu Gajjala
78cf768fa9 remove unnecessary changes 2022-03-11 18:09:53 -08:00
Balu Gajjala
9a85082806 V8.9 build errors, unit tests successful 2022-03-04 18:40:49 -08:00
bagajjal
3a33ea8dee
Bagajjal/fix minor issues (#568) 2022-02-18 17:33:28 -08:00
Yan Tesis
c89890c3a4
Adding PKCS11 support to SSH agent (#537) 2022-02-17 17:31:50 -08:00
bagajjal
0d88c342a5
Spin up ssh-sk-helper in user context when called from ssh-agent (#560) 2022-02-01 18:46:19 -08:00
pedro martelletto
4cd1fd1dc0
Enable support for FIDO2/U2F security keys (#541) 2021-12-17 18:30:25 -08:00
Tess Gauthier
2bbcffac6e
Cleanup L3 Compiler Warnings (#538) 2021-11-02 16:41:35 -07:00
bagajjal
9dba3f91e4
Bagajjal/compile test v8.6 (#503)
Fixed compilation and test failures with V8.6.
2021-04-29 12:41:08 -07:00
bagajjal
2539e60536
fix HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH registry permissions (#484) 2021-03-22 19:17:33 -07:00
Manoj Ampalam
495db5b7e4
Fixes to ssh-agent issues
PowerShell/Win32-OpenSSH#1263
Issue: ssh-agent is using default sign algorithm, without considering related flags in request
Fix: parse flags and consider sign algorithm input

PowerShell/Win32-OpenSSH#1234
Issue: ssh-agent has old logic to lookup sshd account
Fix: remove this redundant logic
2019-01-05 13:16:51 -08:00
Yan Tesis
c6fa13b82e Fix listing agent keys with forwarded agent (#363)
Gracefully fail SSH1 agent requests
2019-01-04 23:44:34 -08:00
Manoj Ampalam
cc16f80123
Converge fork and upstream branches
- Removed #ifdef WINDOWS blocks in base code where the feature support can be conveyed by a failed POSIX API call
- Refactored password authentication code
- Other misc changes - Removed DebugBreak on Release Builds
2018-10-30 14:54:13 -07:00
bagajjal
b10f2232e5 fix lsa auth provider and minor bug fixes (#270)
https://github.com/PowerShell/Win32-OpenSSH/issues/1046
2018-02-02 15:45:32 -08:00
Manoj Ampalam
fdd54b6334
Implement Unix styled privilege separation in Windows (#258)
OpenSSh privilege separation model - http://www.citi.umich.edu/u/provos/ssh/privsep.html 
Posix_spawn is implemented in POSIX adapter as an alternative to fork() that is heavily used in Privilege separation. 
Additional state info is added to sshd to accommodate distinguishing the various modes (privileged monitor, unprivileged child, authenticated child).
Required service state (like config and host keys) is transmitted over pipes from monitor to child processes.
Changes to installation scripts and tests to accomodate new architectural changes
2018-01-15 13:57:31 -08:00
bagajjal
8906783fa4
remove LsaNtStatusToWinError as onecore doesn't support this API (#249) 2017-12-07 12:50:16 -08:00
bagajjal
507fe3283a Support custom LSA auth provider (#246)
Support custom LSA auth provider
2017-12-07 11:12:29 -08:00
Yanbing
a4cbd07812
Enable build for arm and arm64 (#238)
Enable build for arm and arm64
2017-11-14 17:22:02 -08:00
Shawn Iverson
b2daa97b71 Fix misspelling in agent.c (#230) 2017-10-30 15:58:35 -07:00
Manoj Ampalam
a348597468 Support SSH certificates (#213)
support certificate authentication
2017-10-02 12:39:12 -07:00
Manoj Ampalam
4a5fe9ea92 Ported changes to support Windows 2017-08-28 09:49:42 -07:00
Manoj Ampalam
19d40e6668 Ported changes to support Windows 2017-08-28 00:32:51 -07:00
Manoj Ampalam
fdb2b110b7 Fix (#194)
Issue is within msv1_0.dll (NTLM SSP provider). Working around by doing a fake login that populates internal state within msv1_0.dll so further S4U logons work as expected.
PowerShell/Win32-OpenSSH#727
2017-08-17 12:12:09 -07:00
Yanbing
b1a6fbca5e Issue13 (#184)
Replace with secure APIs in win32compat
2017-07-19 15:28:35 -07:00
Manoj Ampalam
0c8f8473d5 Ported changed due to merge from openssh/master 2017-07-08 23:21:35 -07:00
Manoj Ampalam
31bcbea0de Fixed "ssh-add -D" regression caused due recent ssh-agent changes
https://github.com/PowerShell/Win32-OpenSSH/issues/798
2017-07-05 23:10:30 -07:00
Manoj Ampalam
f8f5e45f02 Decouple key-agent and privileged-agent use in sshd (#173)
PowerShell/Win32-OpenSSH#766
PowerShell/Win32-OpenSSH#783
2017-06-26 21:57:24 -07:00
Manoj Ampalam
dd88d8d5d4 Move to LibreSSL, Fixed issues arising from compiling Windows specific code at warling level 3 2017-06-13 10:33:47 -07:00
Manoj Ampalam
4a1980e059 Added missed change in previous commit 2017-06-11 23:37:36 -07:00
Manoj Ampalam
91f9c71021 Improvements to named pipe connections to ssh-agent (#163)
client now connect to ssh-agent at Identification level, preventing rogue processes hosting "ssh-agent" pipes from impersonating and elevating to client context.
Since ssh-agent now cannot do ImpersonateNamedpipeClient, retrieve the client impersonation token explicitly and rely on ImpersonateLoggedonUser instead.
2017-06-10 23:12:10 -07:00
Manoj Ampalam
4df71693c2 Fix agent to recognize calls from sshd service (#149)
https://github.com/PowerShell/Win32-OpenSSH/issues/734
2017-05-24 21:52:20 -07:00
Yanbing
6b807ae229 file permission on ssh_config, authorized_keys, private keys, host keys, public keys. (#110)
1. Add file permission check when load or add ssh_config, authorized_keys, private keys, host keys,.
2. set the owner and ACE for create secure file, ex, private key in ssh-keygen.exe
3. Update script OpenSSHTestHelper.psm1 to be able to run Install-OpenSSH if the sshd is running on the machine.
4. add OpenSSHBinPath to path.
5. change indents in agentconfig.c
6. update test script to represent the changes
7. Add tests for:
* authorized_keys and ssh-keygen testing
* host keys file perm testing
* user private key file perm testing
* ssh-add test
* user ssh_config
2017-05-01 14:18:20 -07:00
Manoj Ampalam
8a83d3360c Fixed key based auth with talking to docker containers
PowerShell/Win32-OpenSSH#677
2017-04-27 21:00:12 -07:00
Manoj Ampalam
1ff1b07410 Run SSHD as NetworkService (#121)
PowerShell/Win32-OpenSSH#681
2017-04-24 22:02:03 -07:00
Manoj Ampalam
5218d4fc45 Revereted "Take Ownership Privileges" change on key auth tokens
Fixed https://github.com/PowerShell/Win32-OpenSSH/issues/611
2017-04-16 13:17:57 -07:00
Manoj Ampalam
3965d200c7 Removed ssh-lsa.dll and setup reboot restriction (#108)
https://github.com/PowerShell/Win32-OpenSSH/issues/657
2017-04-08 09:27:15 -07:00
Yanbing
425bc4033f latestw + Test Infra upgrades
Includes
- CR changes for upstream PR
- Fix in spawn_child logic
- Test Infra upgrades
2017-03-24 12:35:52 -07:00
bagajjal
8addc04e87 Terminalissues (#89)
#576 - fix the EVENT_CONSOLE_CARET issue.. Wrongly read the X, Y coordinates
#575 - when backspace key is pressed then screen is not refreshed correctly
#574 - when delete key is pressed then screen is not refreshed correctly (the last character is repeated in the end)
#573 - while using up/down arrows, screen is not refreshed correctly (there are some left over characters of bigger command)
#572 - clear screen is not clearing the whole console
#571 - Move the cursor to top of visible window so that nothing will be erased on the console.
#570 - code cleanup for console related logic
#569 - wrong implementation of TIOCGWINSZ. This is causing lot of issues when windows open ssh client is connecting to linux ssh server.
#568 - Scrolling issue when the cursor is at the last line of the visible window.
#567 - Logic to pass the raw buffer to console is wrong.
2017-03-13 14:53:58 -07:00
Manoj Ampalam
f80a467c20 Multiple Fixes (#82)
PowerShell/Win32-OpenSSH#524
PowerShell/Win32-OpenSSH#518
PowerShell/Win32-OpenSSH#517
2017-02-15 21:32:50 -08:00
Yanbing
8e9236b03b Groupaccess support (https://github.com/PowerShell/Win32-OpenSSH/issues/463) 2017-02-14 13:43:06 -08:00
Manoj Ampalam
ce03c08333 Removed take ownership privilege on auth tokens resulting from key based auth
https://github.com/PowerShell/Win32-OpenSSH/issues/494
2017-02-06 21:56:32 -08:00
bagajjal
70784d5606 Fixed Denyusers issue when logging in with ssh username@domain@serverip (https://github.com/PowerShell/Win32-OpenSSH/issues/511) 2017-02-02 23:54:02 -08:00
Manoj Ampalam
efa7d82bbd Fixed issue: Wrong log message when key type is not allowed (https://github.com/PowerShell/Win32-OpenSSH/issues/472) 2017-01-14 23:25:12 -08:00
bagajjal
039f2eca7a SFTP bug fixes (#53)
https://github.com/PowerShell/Win32-OpenSSH/issues/479
https://github.com/PowerShell/Win32-OpenSSH/issues/476
https://github.com/PowerShell/Win32-OpenSSH/issues/474
https://github.com/PowerShell/Win32-OpenSSH/issues/467


bug #479 - "ls c:" is not working
 sanitized_path() is modified to handle the edge case "\x:"


2.bug #476 - "cd c:" is not working
 If "c:" is passed to _fullpath() then it is returning existing path but not "c:", so if we append "\" to "c:" then it is working fine.


3.bug #474 - code cleanup MAX_PATH
 Using PATH_MAX variable instead of MAX_PATH
 In dirent.h, used PATH_MAX instead of hardcoding 256 characters
 In readdir(), changed the pdirentry to be a static variable. Before this, we are leaking the memory.


4.bug #467 - SFTP rename failed if the newpath already exists.
 The _wrename throws error if the newpath exists.
 To make it consistent with the linux behavrior,
 a) if the newpath is a file and if it exists then delete it so that _wrename will succeed.
 b) if the newpath is a directory and if it is empty then delete it so that _wrename will succeed.
2017-01-14 22:12:19 -08:00
Manoj Ampalam
5ad8a2c358 Sources Merged from Win32 Fork 2016-12-19 14:46:28 -08:00