48 Commits

Author SHA1 Message Date
Tess Gauthier
ad45b5c9a1
fix func declaration (#682) 2023-08-18 13:31:56 -04: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
bagajjal
b90820169b
add ssh-pkcs11-helper.exe to build output, fix create_no_window for ssh-sk-helper.exe (#579) 2022-03-16 16:48:29 -07:00
Balu Gajjala
78cf768fa9 remove unnecessary changes 2022-03-11 18:09:53 -08:00
bagajjal
2d3ca752f9
V8 9 test (#574) 2022-03-07 10:48:41 -08:00
Balu Gajjala
9a85082806 V8.9 build errors, unit tests successful 2022-03-04 18:40:49 -08:00
Yan Tesis
c89890c3a4
Adding PKCS11 support to SSH agent (#537) 2022-02-17 17:31:50 -08:00
bagajjal
88c5e11dbd Merge branch 'latestw_all' of https://github.com/PowerShell/openssh-portable into bagajjal/pull_v8_6 2021-04-29 12:51:13 -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
vthiebaut10
83927cbe02
sftp-server running on windows writes incoming file from linux client… (#502) 2021-04-28 14:56:51 -07:00
Brian Katyl
6e76ad9e1e
Add support for AuthorizedKeysCommand and AuthorizedPrincipalsCommand to run as System (#479) 2021-03-26 17:12:55 -07:00
bagajjal
0bd3eb973b
remove CREATE_NO_WINDOW
Interactive sftp is broken.
2019-12-17 17:00:49 -08:00
bagajjal
a49bdce666
Port Unix bash tests (#410)
Leverage upstream test infrastructure to run against windows openssh binaries.
2019-12-09 15:12:46 -08:00
bagajjal
9b327de3e7
While spawning sshd process, use DETACHED_PROCESS flag 2019-12-09 11:51:24 -08:00
bagajjal
8cf6003bac
CreateProcess with CREATE_NO_WINDOW flag (#413)
* createProcess() should spawn a new process with an invisible console window.
2019-12-09 10:54:18 -08:00
Yanbing
a75116b6f8 Fix of 1211 and 1082 (#349)
PowerShell/Win32-OpenSSH#1211
PowerShell/Win32-OpenSSH#1082

Added support for posix_spawnp that executes the command directly instead of appending path. (SH_ASKPASS and proxy command use this). Refactored posix spawn commandline building logic to automatically account for Windows CRT escaping rules on all arguments.
2018-11-05 12:22:20 -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
Manoj Ampalam
af4e4113b2
Ported bash based E2E tests and integrated security fix for cve-2018-15473(#346)
- Updated code to dynamic load Lsa functions until RS5 SDK includes them
 - Add conpty support in openssh
- Fixed Wierd characters (?25l) are seen, when logged in from ssh client
- Backspace doesn't work in powershell window
- Changes to support ssh-shellhost as an alternative shell
- Added support to have ssh-shellhost work as a standby shell (ssh-shellhost -c "cmdline") simply executes cmdline via CreateProcess
- Added E2E test cases and fixed unittests broken from prior changes
- Added PTY launch interface that supports both conpty and ssh-shellhost pty.
- Implemented PTY control channel in ssh-shellhost that supports Window resize events.
- Fixed regression with starting a PTY session with an explicit command
- modified ssh-shellhost pty argument to ---pty to remove ambiguity in cases when both -p and -c are present in commandline. Ex. ssh-shellhost.exe -c "myprogram -p -c argument"
2018-10-04 14:16:02 -07:00
Yanbing
0840af06bf
Add support of posix_spawnp (#344)
Added support of posix_spawnp.
1. fix of issue https://github.com/PowerShell/Win32-OpenSSH/issues/1185
2. add End2End tests
2018-09-29 14:28:21 -07:00
Manoj Ampalam
84e87be8ae
ConPTY changes and support for auto-updating known_hosts;
- Logic to support conpty (currently disabled until validation is complete)
- fdopen() and fchmod() support for file handles
- support for auto updating known_hosts via ssh and ssh-keygen
- Support for dynamic Windows-size changes with PTY
- Changes to support OneCore SDK
- Test cases
2018-07-25 15:15:05 -07:00
Bryan Berns
3b450d5072 Updated SSHD Password Generation (#317)
Updated SSHD user password generation routine to be longer and more complex. This should satisfy systems with password filters that require more character types or very long passwords.
Updated routine to now securely zero memory for the SSHD account password.
Corrected attempt to write to NULL pointer by localtime_s() in localtime_r() and made function return NULL on error per specification.
Addressed various compiler / code analysis warnings.
2018-06-04 21:10:46 -07:00
Bryan Berns
ec102dce28 Alternate Thread Creation API To Avoid Memory Leaks (#306)
* Alternate Thread Creation API To Avoid Memory Leaks

- Switched from CreateThread() to _beginthreadex() and ExitThread() to _endthreadex() in order to avoid potential leaks when linking with static CRT library.
- Addressed a variety of warnings that were being detected with static code analysis.

* Addressed Type Cast Warning

- Added explicit cast to the output of _beginthreadex() to avoid a compiler warning.

* Indentation Fix
2018-05-23 16:53:36 -07:00
Manoj Ampalam
7b28a316eb
Enable SFTP chroot support (#308)
- Added chroot implementation that simply stores the path in internal state and sets an environment variable
- Spawned processes pickup chroot from environment variable
- Core change in realpath and resolved_path_utf16 now take into account chroot path.
- Unit tests
- Other miscellaneous changes to account for chroot enabled logic in core code

PowerShell/Win32-OpenSSH#190
PowerShell/Win32-OpenSSH#292
2018-05-11 14:45:20 -07:00
Bryan Berns
bd6408058a Reworked Path Resolution Function
- Reworked resolved_path() into resolved_path_utf16() that combined utf16 conversion and path conditioning into a single function.  This eliminated the previously non-threadsafe resolved_path() function.
- Adjusted functions to use resolved_path_utf16().
- Collapsed copy_file() function that was only used once.
- Corrected compilation errors when debug4() and debug5() are enabled.
2018-04-01 23:41:09 -04:00
Bryan Berns
59971b42ee Updated Signal Handler (#287)
https://github.com/PowerShell/Win32-OpenSSH/issues/1096
https://github.com/PowerShell/Win32-OpenSSH/issues/191

- Updated wait_for_multiple_objects_enhanced() to handle a no-event request while alterable.
- Simplified wait_for_any_event() to by taking advantage of no-event alterable request in wait_for_multiple_objects_enhanced().
- Updated wait_for_any_event() to use MAX_CHILDREN limit instead of MAXIMUM_WAIT_OBJECTS limit.
- Removed unnecessary ZeroMemory() call.
- Created distinct definition MAXIMUM_WAIT_OBJECTS_ENHANCED
 and modified functions to use it.
- Upped w32_select() event limit.
- Modified wait_for_multiple_objects_enhanced() to allow for 0 millisecond wait.
2018-03-20 09:49:09 -07:00
Manoj Ampalam
9fe39c0c73
Fixed regression caused due to ETW support changes (#282)
Regression: Service is unable to start if "ssh" programdata directory is missing.
Reason: This is due to refactored changes around w32_programdir() that moved its initialization to within win32_posix_initialize. sshd_main() is relying on this call even before the POSIX layer gets initialized.
Fix: Reverted the refactoring changes and added comments to consolidate these changes later. Also removed directory creation logic in install-sshd.ps1 that masked this issue before.
2018-03-09 14:56:47 -08:00
Manoj Ampalam
2c559a2b6c
Added support for ETW based logging (#280)
https://github.com/PowerShell/Win32-OpenSSH/issues/95
2018-03-06 15:33:19 -08:00
bagajjal
fcead5ed76 Fixed issue with starting sshd in debug mode with a "./" (./sshd.exe -d)
PowerShell/Win32-OpenSSH#1045
2018-02-12 11:49:33 -08: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
bagajjal
c85ba2b8c3 Separate binary path from cfg path and log path (#263)
Separate binary path from cfg path and log path, test update
2018-01-19 15:12:43 -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
507fe3283a Support custom LSA auth provider (#246)
Support custom LSA auth provider
2017-12-07 11:12:29 -08:00
bagajjal
bcf9c5336f SFTP fix to download a very large file in chunks #863 (#227)
PowerShell/Win32-OpenSSH#863
2017-11-20 23:25:01 -08:00
bagajjal
c9c715e707 Fix sftp scp file permission (#212)
PowerShell/Win32-OpenSSH#884
Convert the mode properly to file permissions.
If mode has "read" permission then we set the file permission to "read & execute"
If mode has "write" permission then we set the file permission to "Write & Modify"
Inherit the file permissions from the parent folder when sftp / scp creates the file on windows.
sftp - put & get.
scp - from local to remote windows machine.
2017-10-16 13:00:40 -07:00
Manoj Ampalam
b327f0c48a Fix to Issue 698 and other misc changes (#208)
Fix to PowerShell/Win32-OpenSSH#698 - Create job object, add ssh-shellhost and ensure all its child process and tied to its lifetime.
Other changes include changes to debug* statements in posix adapter that may cause recursion/stack overflow issues.
2017-09-21 22:00:39 -07:00
Yanbing
18b1e5935b multiple fixes for win7 (#206)
1. fix some exception when appverifier is enabled on win7 (https://gitthub.com/PowerShell/Win32-OpenSSH/issues/872)
2. enable sshdconfig tests on win7(https://github.com/PowerShell/Win32-OpenSSH/issues/873)
3. fix for https://github.com/PowerShell/Win32-OpenSSH/issues/874 ( ReadFile does not return on win7 when no content in console )
4. Remove logging to console in Readthread because write hangs here since write thread already closed (https://github.com/PowerShell/Win32-OpenSSH/issues/879)
5. fix VCTargetsPath
2017-09-15 21:25:42 -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
849b637a7e Porting latest openssh/master changes to Windows 2017-06-07 22:04:05 -07:00
Yanbing
81bcaaa7cf Add mode support in open() and onboard file perm related changes and tests (#145)
PowerShell/Win32-OpenSSH#710
PowerShell/Win32-OpenSSH#725
PowerShell/Win32-OpenSSH#729
PowerShell/Win32-OpenSSH#731
PowerShell/Win32-OpenSSH#732
2017-05-23 21:45:38 -07:00
bagajjal
4dbee0d15a Onboard sshkeyscan (#143)
PowerShell/Win32-OpenSSH#124
PowerShell/Win32-OpenSSH#728
2017-05-22 22:18:41 -07:00
Manoj Ampalam
c3c5c1fa7f Support I/O redirection in all ssh clients (ssh.exe, sftp.exe and scp.exe) (#113)
PowerShell/Win32-OpenSSH#668
2017-04-14 16:15:32 -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
Manoj Ampalam
0ed1ef55f7 AF_UNIX IPC sockets client side support (#84)
AF_UNIX kind of sockets are now supported. socket() and connect() calls are implemented. Windows specific logic in authfd.c is now removed. https://github.com/PowerShell/Win32-OpenSSH/issues/532 is created to keep track of ssh-agent end point authentication
2017-02-17 21:02:59 -08:00
bagajjal
4d0c1db166 Fixed wstat fix for file permission issue
https://github.com/PowerShell/Win32-OpenSSH/issues/176


1.If there are no sufficient permissions to open a file then _wstat64() is returning file not present but it should return the accessed denied.Fixed this.


2.Code cleanup in the posix compat files to align with the openbsd coding standard.
2017-02-09 11:30:40 -08:00
Yanbing
47c4ec917b SCP bug fix: SCP does not copy file exceeds 2,147,483,648 bytes. (https://github.com/PowerShell/Win32-OpenSSH/issues/145) (#70)
* SCP bug fix: https://github.com/PowerShell/Win32-OpenSSH/issues/145

1. update the install-sshd does not failed when log folder exists.
2. enable to copy files larger than 2G

* update the new-item usage

* exclude unittest-sshkey.exe temperately

* move declaration to top

* update white spaces

* Remove the memset
2017-01-31 20:07:29 -08:00
Manoj Ampalam
c6b57c018c Got rid of w32posix.h and defs.h (https://github.com/PowerShell/Win32-OpenSSH/issues/498) 2017-01-25 14:43:55 -08:00
Manoj Ampalam
9333a08637 SCP Fixes (from Yanbing), realpath_win cleanup and spawn_child fix (that broke progfiles installation) 2016-12-21 21:17:14 -08:00
Manoj Ampalam
5ad8a2c358 Sources Merged from Win32 Fork 2016-12-19 14:46:28 -08:00