Skip to content

Commit ff68b38

Browse files
committed
Merge branch 'develop' of https://github.com/sshnet/SSH.NET into develop
2 parents f6daa4d + 6cb91f6 commit ff68b38

6 files changed

+101
-23
lines changed

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,21 @@ This project was inspired by **Sharp.SSH** library which was ported from java an
5858
* Windows Phone 8.0
5959
* Universal Windows Platform 10
6060

61+
##Usage
62+
Establish an SFTP connection using both password and public-key authentication:
63+
64+
```cs
65+
var connectionInfo = new ConnectionInfo("sftp.foo.com",
66+
"guest",
67+
new PasswordAuthenticationMethod("guest", "pwd"),
68+
new PrivateKeyAuthenticationMethod("rsa.key"));
69+
using (var client = new SftpClient(connectionInfo))
70+
{
71+
client.Connect();
72+
}
73+
74+
```
75+
6176
##Building SSH.NET
6277

6378
Software | net35 | net40 | netstandard1.3 | sl4 | sl5 | wp71 | wp8 | uap10.0 |

src/Renci.SshNet.Tests.NET35/Renci.SshNet.Tests.NET35.csproj

Lines changed: 82 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1064,6 +1064,9 @@
10641064
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileReaderTest_Read_ReahAheadExceptionInBeginRead.cs">
10651065
<Link>Classes\Sftp\SftpFileReaderTest_Read_ReahAheadExceptionInBeginRead.cs</Link>
10661066
</Compile>
1067+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTestBase.cs">
1068+
<Link>Classes\Sftp\SftpFileStreamTestBase.cs</Link>
1069+
</Compile>
10671070
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_CanRead_Closed_FileAccessRead.cs">
10681071
<Link>Classes\Sftp\SftpFileStreamTest_CanRead_Closed_FileAccessRead.cs</Link>
10691072
</Compile>
@@ -1082,15 +1085,6 @@
10821085
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_CanRead_Disposed_FileAccessWrite.cs">
10831086
<Link>Classes\Sftp\SftpFileStreamTest_CanRead_Disposed_FileAccessWrite.cs</Link>
10841087
</Compile>
1085-
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_CanRead_SessionOpen_FileAccessRead.cs">
1086-
<Link>Classes\Sftp\SftpFileStreamTest_CanRead_SessionOpen_FileAccessRead.cs</Link>
1087-
</Compile>
1088-
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_CanRead_SessionOpen_FileAccessReadWrite.cs">
1089-
<Link>Classes\Sftp\SftpFileStreamTest_CanRead_SessionOpen_FileAccessReadWrite.cs</Link>
1090-
</Compile>
1091-
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_CanRead_SessionOpen_FileAccessWrite.cs">
1092-
<Link>Classes\Sftp\SftpFileStreamTest_CanRead_SessionOpen_FileAccessWrite.cs</Link>
1093-
</Compile>
10941088
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_CanWrite_Closed_FileAccessRead.cs">
10951089
<Link>Classes\Sftp\SftpFileStreamTest_CanWrite_Closed_FileAccessRead.cs</Link>
10961090
</Compile>
@@ -1109,15 +1103,6 @@
11091103
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_CanWrite_Disposed_FileAccessWrite.cs">
11101104
<Link>Classes\Sftp\SftpFileStreamTest_CanWrite_Disposed_FileAccessWrite.cs</Link>
11111105
</Compile>
1112-
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_CanWrite_SessionOpen_FileAccessRead.cs">
1113-
<Link>Classes\Sftp\SftpFileStreamTest_CanWrite_SessionOpen_FileAccessRead.cs</Link>
1114-
</Compile>
1115-
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_CanWrite_SessionOpen_FileAccessReadWrite.cs">
1116-
<Link>Classes\Sftp\SftpFileStreamTest_CanWrite_SessionOpen_FileAccessReadWrite.cs</Link>
1117-
</Compile>
1118-
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_CanWrite_SessionOpen_FileAccessWrite.cs">
1119-
<Link>Classes\Sftp\SftpFileStreamTest_CanWrite_SessionOpen_FileAccessWrite.cs</Link>
1120-
</Compile>
11211106
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Close_Closed.cs">
11221107
<Link>Classes\Sftp\SftpFileStreamTest_Close_Closed.cs</Link>
11231108
</Compile>
@@ -1130,6 +1115,72 @@
11301115
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Close_SessionOpen.cs">
11311116
<Link>Classes\Sftp\SftpFileStreamTest_Close_SessionOpen.cs</Link>
11321117
</Compile>
1118+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileAccessInvalid.cs">
1119+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileAccessInvalid.cs</Link>
1120+
</Compile>
1121+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeAppend_FileAccessRead.cs">
1122+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeAppend_FileAccessRead.cs</Link>
1123+
</Compile>
1124+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeAppend_FileAccessReadWrite.cs">
1125+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeAppend_FileAccessReadWrite.cs</Link>
1126+
</Compile>
1127+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeAppend_FileAccessWrite.cs">
1128+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeAppend_FileAccessWrite.cs</Link>
1129+
</Compile>
1130+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreateNew_FileAccessRead.cs">
1131+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreateNew_FileAccessRead.cs</Link>
1132+
</Compile>
1133+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreateNew_FileAccessReadWrite.cs">
1134+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreateNew_FileAccessReadWrite.cs</Link>
1135+
</Compile>
1136+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreateNew_FileAccessWrite.cs">
1137+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreateNew_FileAccessWrite.cs</Link>
1138+
</Compile>
1139+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessRead.cs">
1140+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessRead.cs</Link>
1141+
</Compile>
1142+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessReadWrite_FileDoesNotExist.cs">
1143+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessReadWrite_FileDoesNotExist.cs</Link>
1144+
</Compile>
1145+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessReadWrite_FileExists.cs">
1146+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessReadWrite_FileExists.cs</Link>
1147+
</Compile>
1148+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessWrite_FileDoesNotExist.cs">
1149+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessWrite_FileDoesNotExist.cs</Link>
1150+
</Compile>
1151+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessWrite_FileExists.cs">
1152+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessWrite_FileExists.cs</Link>
1153+
</Compile>
1154+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeInvalid.cs">
1155+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeInvalid.cs</Link>
1156+
</Compile>
1157+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpenOrCreate_FileAccessRead.cs">
1158+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpenOrCreate_FileAccessRead.cs</Link>
1159+
</Compile>
1160+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpenOrCreate_FileAccessReadWrite.cs">
1161+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpenOrCreate_FileAccessReadWrite.cs</Link>
1162+
</Compile>
1163+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpenOrCreate_FileAccessWrite.cs">
1164+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpenOrCreate_FileAccessWrite.cs</Link>
1165+
</Compile>
1166+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpen_FileAccessRead.cs">
1167+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpen_FileAccessRead.cs</Link>
1168+
</Compile>
1169+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpen_FileAccessReadWrite.cs">
1170+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpen_FileAccessReadWrite.cs</Link>
1171+
</Compile>
1172+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpen_FileAccessWrite.cs">
1173+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpen_FileAccessWrite.cs</Link>
1174+
</Compile>
1175+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeTruncate_FileAccessRead.cs">
1176+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeTruncate_FileAccessRead.cs</Link>
1177+
</Compile>
1178+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeTruncate_FileAccessReadWrite.cs">
1179+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeTruncate_FileAccessReadWrite.cs</Link>
1180+
</Compile>
1181+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Ctor_FileModeTruncate_FileAccessWrite.cs">
1182+
<Link>Classes\Sftp\SftpFileStreamTest_Ctor_FileModeTruncate_FileAccessWrite.cs</Link>
1183+
</Compile>
11331184
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Dispose_Closed.cs">
11341185
<Link>Classes\Sftp\SftpFileStreamTest_Dispose_Closed.cs</Link>
11351186
</Compile>
@@ -1145,6 +1196,15 @@
11451196
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Finalize_SessionOpen.cs">
11461197
<Link>Classes\Sftp\SftpFileStreamTest_Finalize_SessionOpen.cs</Link>
11471198
</Compile>
1199+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_ReadByte_ReadMode_NoDataInWriteBufferAndNoDataInReadBuffer_Eof.cs">
1200+
<Link>Classes\Sftp\SftpFileStreamTest_ReadByte_ReadMode_NoDataInWriteBufferAndNoDataInReadBuffer_Eof.cs</Link>
1201+
</Compile>
1202+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_ReadByte_ReadMode_NoDataInWriteBufferAndNoDataInReadBuffer_LessDataThanReadBufferSizeAvailable.cs">
1203+
<Link>Classes\Sftp\SftpFileStreamTest_ReadByte_ReadMode_NoDataInWriteBufferAndNoDataInReadBuffer_LessDataThanReadBufferSizeAvailable.cs</Link>
1204+
</Compile>
1205+
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_Read_ReadMode_NoDataInReaderBufferAndReadMoreBytesThanCount.cs">
1206+
<Link>Classes\Sftp\SftpFileStreamTest_Read_ReadMode_NoDataInReaderBufferAndReadMoreBytesThanCount.cs</Link>
1207+
</Compile>
11481208
<Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest_SetLength_Closed.cs">
11491209
<Link>Classes\Sftp\SftpFileStreamTest_SetLength_Closed.cs</Link>
11501210
</Compile>
@@ -1313,6 +1373,9 @@
13131373
<Compile Include="..\Renci.SshNet.Tests\Common\HttpRequest.cs">
13141374
<Link>Common\HttpRequest.cs</Link>
13151375
</Compile>
1376+
<Compile Include="..\Renci.SshNet.Tests\Common\SftpFileAttributesBuilder.cs">
1377+
<Link>Common\SftpFileAttributesBuilder.cs</Link>
1378+
</Compile>
13161379
<Compile Include="..\Renci.SshNet.Tests\Common\TestBase.cs">
13171380
<Link>Common\TestBase.cs</Link>
13181381
</Compile>
@@ -1388,7 +1451,7 @@
13881451
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
13891452
<ProjectExtensions>
13901453
<VisualStudio>
1391-
<UserProperties ProjectLinkReference="c45379b9-17b1-4e89-bc2e-6d41726413e8" ProjectLinkerExcludeFilter="\\?desktop(\\.*)?$;\\?silverlight(\\.*)?$;\.desktop;\.silverlight;\.xaml;^service references(\\.*)?$;\.clientconfig;^web references(\\.*)?$" />
1454+
<UserProperties ProjectLinkerExcludeFilter="\\?desktop(\\.*)?$;\\?silverlight(\\.*)?$;\.desktop;\.silverlight;\.xaml;^service references(\\.*)?$;\.clientconfig;^web references(\\.*)?$" ProjectLinkReference="c45379b9-17b1-4e89-bc2e-6d41726413e8" />
13921455
</VisualStudio>
13931456
</ProjectExtensions>
13941457
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

src/Renci.SshNet.Tests/Classes/Sftp/SftpFileStreamTest_Ctor_FileModeAppend_FileAccessRead.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void CtorShouldHaveThrownArgumentException()
4848
{
4949
Assert.IsNotNull(_actualException);
5050
Assert.IsNull(_actualException.InnerException);
51-
Assert.AreEqual($"Combining {nameof(FileMode)}: {_fileMode} with {nameof(FileAccess)}: {_fileAccess} is invalid.", _actualException.Message);
51+
Assert.AreEqual(string.Format("Combining {0}: {1} with {2}: {3} is invalid.", typeof(FileMode).Name, _fileMode, typeof(FileAccess).Name, _fileAccess), _actualException.Message);
5252
Assert.IsNull(_actualException.ParamName);
5353
}
5454
}

src/Renci.SshNet.Tests/Classes/Sftp/SftpFileStreamTest_Ctor_FileModeCreateNew_FileAccessRead.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void CtorShouldHaveThrownArgumentException()
4848
{
4949
Assert.IsNotNull(_actualException);
5050
Assert.IsNull(_actualException.InnerException);
51-
Assert.AreEqual($"Combining {nameof(FileMode)}: {_fileMode} with {nameof(FileAccess)}: {_fileAccess} is invalid.", _actualException.Message);
51+
Assert.AreEqual(string.Format("Combining {0}: {1} with {2}: {3} is invalid.", typeof(FileMode).Name, _fileMode, typeof(FileAccess).Name, _fileAccess), _actualException.Message);
5252
Assert.IsNull(_actualException.ParamName);
5353
}
5454
}

src/Renci.SshNet.Tests/Classes/Sftp/SftpFileStreamTest_Ctor_FileModeCreate_FileAccessRead.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void CtorShouldHaveThrownArgumentException()
4848
{
4949
Assert.IsNotNull(_actualException);
5050
Assert.IsNull(_actualException.InnerException);
51-
Assert.AreEqual($"Combining {nameof(FileMode)}: {_fileMode} with {nameof(FileAccess)}: {_fileAccess} is invalid.", _actualException.Message);
51+
Assert.AreEqual(string.Format("Combining {0}: {1} with {2}: {3} is invalid.", typeof(FileMode).Name, _fileMode, typeof(FileAccess).Name, _fileAccess), _actualException.Message);
5252
Assert.IsNull(_actualException.ParamName);
5353
}
5454
}

src/Renci.SshNet.Tests/Classes/Sftp/SftpFileStreamTest_Ctor_FileModeTruncate_FileAccessRead.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void CtorShouldHaveThrownArgumentException()
4848
{
4949
Assert.IsNotNull(_actualException);
5050
Assert.IsNull(_actualException.InnerException);
51-
Assert.AreEqual($"Combining {nameof(FileMode)}: {_fileMode} with {nameof(FileAccess)}: {_fileAccess} is invalid.", _actualException.Message);
51+
Assert.AreEqual(string.Format("Combining {0}: {1} with {2}: {3} is invalid.", typeof(FileMode).Name, _fileMode, typeof(FileAccess).Name, _fileAccess), _actualException.Message);
5252
Assert.IsNull(_actualException.ParamName);
5353
}
5454
}

0 commit comments

Comments
 (0)