The ScpClient.Upload(DirectoryInfo, string) overload wrongly applies the LastWriteTimeUtc and LastAccessTimeUtc of the local parent of a given directory to the corresponding remote directory.
For example:
Suppose the following directory structure exists locally:
When you copy the content of the c:\sshnet directory to remote path /home/sshnet, then the last write and last access time of the c:\sshnet directory will be applied to /home/sshnet/test.