NewLife/GitCandy

v1.3.2017.0824   全面停用SSH
大石头 authored at 2017-08-02 22:23:45
b38bcce
Tree
1 Parent(s) 9ba8b53
Summary: 18 changed files with 233 additions and 395 deletions.
Modified +32 -32
Modified +7 -8
Modified +26 -27
Modified +52 -53
Modified +24 -24
Modified +0 -12
Modified +2 -2
Modified +5 -3
Modified +0 -1
Modified +1 -4
Modified +0 -12
Modified +35 -109
Modified +1 -1
Modified +16 -16
Modified +6 -6
Modified +17 -17
Modified +0 -65
Modified +9 -3
Modified +32 -32
diff --git a/GitCandy.Web/Controllers/AccountController.cs b/GitCandy.Web/Controllers/AccountController.cs
index 9d43f30..cca23a8 100644
--- a/GitCandy.Web/Controllers/AccountController.cs
+++ b/GitCandy.Web/Controllers/AccountController.cs
@@ -226,38 +226,38 @@ namespace GitCandy.Controllers
             return View(model);
         }
 
-        [HttpPost]
-        [CurrentUserOrAdministrator]
-        public JsonResult ChooseSsh(String user, String sshkey, String act)
-        {
-            String message = null;
-            if (act == "add")
-            {
-                var fingerprint = MembershipService.AddSshKey(user, sshkey);
-                if (fingerprint != null)
-                    return Json(fingerprint);
-            }
-            else if (act == "del")
-            {
-                MembershipService.DeleteSshKey(user, sshkey);
-                return Json("success");
-            }
-
-            Response.StatusCode = 400;
-            return Json(message ?? SR.Shared_SomethingWrong);
-        }
-
-        [CurrentUserOrAdministrator]
-        public ActionResult Ssh(String name)
-        {
-            if (String.IsNullOrEmpty(name) && Token != null)
-                name = Token.Username;
-
-            var model = MembershipService.GetSshList(name);
-            if (model == null)
-                throw new HttpException((int)HttpStatusCode.NotFound, String.Empty);
-            return View(model);
-        }
+        //[HttpPost]
+        //[CurrentUserOrAdministrator]
+        //public JsonResult ChooseSsh(String user, String sshkey, String act)
+        //{
+        //    String message = null;
+        //    if (act == "add")
+        //    {
+        //        var fingerprint = MembershipService.AddSshKey(user, sshkey);
+        //        if (fingerprint != null)
+        //            return Json(fingerprint);
+        //    }
+        //    else if (act == "del")
+        //    {
+        //        MembershipService.DeleteSshKey(user, sshkey);
+        //        return Json("success");
+        //    }
+
+        //    Response.StatusCode = 400;
+        //    return Json(message ?? SR.Shared_SomethingWrong);
+        //}
+
+        //[CurrentUserOrAdministrator]
+        //public ActionResult Ssh(String name)
+        //{
+        //    if (String.IsNullOrEmpty(name) && Token != null)
+        //        name = Token.Username;
+
+        //    var model = MembershipService.GetSshList(name);
+        //    if (model == null)
+        //        throw new HttpException((int)HttpStatusCode.NotFound, String.Empty);
+        //    return View(model);
+        //}
 
         [Administrator]
         public ActionResult Delete(String name, String conform)
Modified +7 -8
diff --git a/GitCandy.Web/Controllers/RepositoryController.cs b/GitCandy.Web/Controllers/RepositoryController.cs
index 0a2ab25..8d99416 100644
--- a/GitCandy.Web/Controllers/RepositoryController.cs
+++ b/GitCandy.Web/Controllers/RepositoryController.cs
@@ -7,15 +7,14 @@ using System.Web.Mvc;
 using GitCandy.Base;
 using GitCandy.Configuration;
 using GitCandy.Data;
+using GitCandy.Extensions;
 using GitCandy.Filters;
 using GitCandy.Git;
 using GitCandy.Git.Cache;
 using GitCandy.Models;
-using GitCandy.Ssh;
 using GitCandy.Web.App_GlobalResources;
 using NewLife.GitCandy.Entity;
 using NewLife.Log;
-using GitCandy.Extensions;
 using UserX = NewLife.GitCandy.Entity.User;
 
 namespace GitCandy.Controllers
@@ -494,15 +493,15 @@ namespace GitCandy.Controllers
             UriBuilder ub = new UriBuilder(url.Scheme, url.Host, url.Port, path);
             var httpUrl = ub.Uri.ToString();
 
-            var sshPort = UserConfiguration.Current.SshPort;
-            var sshUrl = sshPort == StartingInfo.DefaultPort
-                ? String.Format("git@{0}:git/{1}.git", url.Host, name)
-                : String.Format("ssh://git@{0}:{1}/git/{2}.git", url.Host, sshPort, name);
+            //var sshPort = UserConfiguration.Current.SshPort;
+            //var sshUrl = sshPort == StartingInfo.DefaultPort
+            //    ? String.Format("git@{0}:git/{1}.git", url.Host, name)
+            //    : String.Format("ssh://git@{0}:{1}/git/{2}.git", url.Host, sshPort, name);
 
             var result = new List<GitUrl>(4);
             result.Add(new GitUrl { Type = url.Scheme, Url = httpUrl });
-            if (UserConfiguration.Current.EnableSsh)
-                result.Add(new GitUrl { Type = "ssh", Url = sshUrl });
+            //if (UserConfiguration.Current.EnableSsh)
+            //    result.Add(new GitUrl { Type = "ssh", Url = sshUrl });
 
             return result.ToArray();
         }
Modified +26 -27
diff --git a/GitCandy.Web/Controllers/SettingController.cs b/GitCandy.Web/Controllers/SettingController.cs
index 6518635..f5f894f 100644
--- a/GitCandy.Web/Controllers/SettingController.cs
+++ b/GitCandy.Web/Controllers/SettingController.cs
@@ -5,7 +5,6 @@ using System.Web.Mvc;
 using GitCandy.Configuration;
 using GitCandy.Filters;
 using GitCandy.Models;
-using GitCandy.Ssh;
 using NewLife.Log;
 
 namespace GitCandy.Controllers
@@ -21,8 +20,8 @@ namespace GitCandy.Controllers
                 IsPublicServer = config.IsPublicServer,
                 ForceSsl = config.ForceSsl,
                 SslPort = config.SslPort,
-                SshPort = config.SshPort,
-                EnableSsh = config.EnableSsh,
+                //SshPort = config.SshPort,
+                //EnableSsh = config.EnableSsh,
                 LocalSkipCustomError = config.LocalSkipCustomError,
                 AllowRegisterUser = config.AllowRegisterUser,
                 AllowRepositoryCreation = config.AllowRepositoryCreation,
@@ -40,20 +39,20 @@ namespace GitCandy.Controllers
         public ActionResult Edit(SettingModel model)
         {
             var needRestart = false;
-            var needRestartSshServer = false;
+            //var needRestartSshServer = false;
 
             if (ModelState.IsValid)
             {
                 var config = UserConfiguration.Current;
 
                 needRestart = (config.CachePath != model.CachePath);
-                needRestartSshServer = config.SshPort != model.SshPort || config.EnableSsh != model.EnableSsh;
+                //needRestartSshServer = config.SshPort != model.SshPort || config.EnableSsh != model.EnableSsh;
 
                 config.IsPublicServer = model.IsPublicServer;
                 config.ForceSsl = model.ForceSsl;
                 config.SslPort = model.SslPort;
-                config.SshPort = model.SshPort;
-                config.EnableSsh = model.EnableSsh;
+                //config.SshPort = model.SshPort;
+                //config.EnableSsh = model.EnableSsh;
                 config.LocalSkipCustomError = model.LocalSkipCustomError;
                 config.AllowRegisterUser = model.AllowRegisterUser;
                 config.AllowRepositoryCreation = model.AllowRepositoryCreation;
@@ -71,13 +70,13 @@ namespace GitCandy.Controllers
 
             if (needRestart)
             {
-                SshServerConfig.StopSshServer();
+                //SshServerConfig.StopSshServer();
                 HttpRuntime.UnloadAppDomain();
             }
-            else if (needRestartSshServer)
-            {
-                SshServerConfig.RestartSshServer();
-            }
+            //else if (needRestartSshServer)
+            //{
+            //    SshServerConfig.RestartSshServer();
+            //}
 
             return View(model);
         }
@@ -92,22 +91,22 @@ namespace GitCandy.Controllers
             return View();
         }
 
-        public ActionResult ReGenSsh(String conform)
-        {
-            if (String.Equals(conform, "yes", StringComparison.OrdinalIgnoreCase))
-            {
-                UserConfiguration.Current.HostKeys.Clear();
-                foreach (var type in KeyUtils.SupportedAlgorithms)
-                {
-                    UserConfiguration.Current.HostKeys.Add(new HostKey { KeyType = type, KeyXml = KeyUtils.GeneratePrivateKey(type) });
-                }
-                UserConfiguration.Current.Save();
+        //public ActionResult ReGenSsh(String conform)
+        //{
+        //    if (String.Equals(conform, "yes", StringComparison.OrdinalIgnoreCase))
+        //    {
+        //        UserConfiguration.Current.HostKeys.Clear();
+        //        foreach (var type in KeyUtils.SupportedAlgorithms)
+        //        {
+        //            UserConfiguration.Current.HostKeys.Add(new HostKey { KeyType = type, KeyXml = KeyUtils.GeneratePrivateKey(type) });
+        //        }
+        //        UserConfiguration.Current.Save();
 
-                SshServerConfig.RestartSshServer();
+        //        SshServerConfig.RestartSshServer();
 
-                return RedirectToAction("Edit");
-            }
-            return View();
-        }
+        //        return RedirectToAction("Edit");
+        //    }
+        //    return View();
+        //}
     }
 }
Modified +52 -53
diff --git a/GitCandy.Web/Data/MembershipService.cs b/GitCandy.Web/Data/MembershipService.cs
index 37b4950..241469f 100644
--- a/GitCandy.Web/Data/MembershipService.cs
+++ b/GitCandy.Web/Data/MembershipService.cs
@@ -3,7 +3,6 @@ using System.Linq;
 using GitCandy.Base;
 using GitCandy.Models;
 using GitCandy.Security;
-using GitCandy.Ssh;
 using NewLife.Data;
 using NewLife.GitCandy.Entity;
 
@@ -158,58 +157,58 @@ namespace GitCandy.Data
             };
         }
 
-        public String AddSshKey(String name, String sshkey)
-        {
-            var seg = sshkey.Split();
-            var type = seg[0];
-            sshkey = seg[1];
-            var fingerprint = KeyUtils.GetFingerprint(sshkey);
-
-            var user = User.FindByName(name);
-            if (user == null) return null;
-
-            var key = new SshKey
-            {
-                UserID = user.ID,
-                KeyType = type,
-                Fingerprint = fingerprint,
-                PublicKey = sshkey,
-                ImportData = DateTime.UtcNow,
-                LastUse = DateTime.UtcNow,
-            };
-
-            key.Save();
-
-            return fingerprint;
-        }
-
-        public void DeleteSshKey(String name, String sshkey)
-        {
-            var user = User.FindByName(name);
-            if (user == null) return;
-
-            var key = SshKey.FindByUserID(user.ID);
-            if (key == null) return;
-
-            if (key.Fingerprint == sshkey) key.Delete();
-        }
-
-        public bool HasSshKey(String fingerprint)
-        {
-            return SshKey.FindByFingerprint(fingerprint) != null;
-        }
-
-        public SshModel GetSshList(String name)
-        {
-            var user = User.FindByName(name);
-            if (user == null) return null;
-
-            return new Models.SshModel
-            {
-                Username = user.Name,
-                SshKeys = user.SshKeys.Select(s => new SshModel.SshKey { Name = s.Fingerprint }).ToArray()
-            };
-        }
+        //public String AddSshKey(String name, String sshkey)
+        //{
+        //    var seg = sshkey.Split();
+        //    var type = seg[0];
+        //    sshkey = seg[1];
+        //    var fingerprint = KeyUtils.GetFingerprint(sshkey);
+
+        //    var user = User.FindByName(name);
+        //    if (user == null) return null;
+
+        //    var key = new SshKey
+        //    {
+        //        UserID = user.ID,
+        //        KeyType = type,
+        //        Fingerprint = fingerprint,
+        //        PublicKey = sshkey,
+        //        ImportData = DateTime.UtcNow,
+        //        LastUse = DateTime.UtcNow,
+        //    };
+
+        //    key.Save();
+
+        //    return fingerprint;
+        //}
+
+        //public void DeleteSshKey(String name, String sshkey)
+        //{
+        //    var user = User.FindByName(name);
+        //    if (user == null) return;
+
+        //    var key = SshKey.FindByUserID(user.ID);
+        //    if (key == null) return;
+
+        //    if (key.Fingerprint == sshkey) key.Delete();
+        //}
+
+        //public bool HasSshKey(String fingerprint)
+        //{
+        //    return SshKey.FindByFingerprint(fingerprint) != null;
+        //}
+
+        //public SshModel GetSshList(String name)
+        //{
+        //    var user = User.FindByName(name);
+        //    if (user == null) return null;
+
+        //    return new Models.SshModel
+        //    {
+        //        Username = user.Name,
+        //        SshKeys = user.SshKeys.Select(s => new SshModel.SshKey { Name = s.Fingerprint }).ToArray()
+        //    };
+        //}
         #endregion
 
         #region Team part
Modified +24 -24
diff --git a/GitCandy.Web/Data/RepositoryService.cs b/GitCandy.Web/Data/RepositoryService.cs
index f6e98f0..a6da502 100644
--- a/GitCandy.Web/Data/RepositoryService.cs
+++ b/GitCandy.Web/Data/RepositoryService.cs
@@ -271,37 +271,37 @@ namespace GitCandy.Data
             return CheckReadWrite(repo, user, true);
         }
 
-        public Boolean CanReadRepository(String owner, String reponame, String fingerprint, String publickey)
-        {
-            var repo = Repository.FindByOwnerAndName(owner, reponame);
-            if (repo == null) return false;
-            if (repo.AllowAnonymousRead) return true;
+        //public Boolean CanReadRepository(String owner, String reponame, String fingerprint, String publickey)
+        //{
+        //    var repo = Repository.FindByOwnerAndName(owner, reponame);
+        //    if (repo == null) return false;
+        //    if (repo.AllowAnonymousRead) return true;
 
-            var ssh = SshKey.FindByFingerprint(fingerprint);
-            if (ssh == null || ssh.PublicKey != publickey) return false;
+        //    var ssh = SshKey.FindByFingerprint(fingerprint);
+        //    if (ssh == null || ssh.PublicKey != publickey) return false;
 
-            var user = ssh.User;
-            if (user == null) return false;
-            if (user.IsAdmin) return true;
+        //    var user = ssh.User;
+        //    if (user == null) return false;
+        //    if (user.IsAdmin) return true;
 
-            return CheckReadWrite(repo, user, false);
-        }
+        //    return CheckReadWrite(repo, user, false);
+        //}
 
-        public Boolean CanWriteRepository(String owner, String reponame, String fingerprint, String publickey)
-        {
-            var repo = Repository.FindByOwnerAndName(owner, reponame);
-            if (repo == null) return false;
-            if (repo.AllowAnonymousRead && repo.AllowAnonymousWrite) return true;
+        //public Boolean CanWriteRepository(String owner, String reponame, String fingerprint, String publickey)
+        //{
+        //    var repo = Repository.FindByOwnerAndName(owner, reponame);
+        //    if (repo == null) return false;
+        //    if (repo.AllowAnonymousRead && repo.AllowAnonymousWrite) return true;
 
-            var ssh = SshKey.FindByFingerprint(fingerprint);
-            if (ssh == null || ssh.PublicKey != publickey) return false;
+        //    var ssh = SshKey.FindByFingerprint(fingerprint);
+        //    if (ssh == null || ssh.PublicKey != publickey) return false;
 
-            var user = ssh.User;
-            if (user == null) return false;
-            if (user.IsAdmin) return true;
+        //    var user = ssh.User;
+        //    if (user == null) return false;
+        //    if (user.IsAdmin) return true;
 
-            return CheckReadWrite(repo, user, true);
-        }
+        //    return CheckReadWrite(repo, user, true);
+        //}
 
         public RepositoryListModel GetRepositories(String username, Boolean showAll, PageParameter param)
         {
Modified +0 -12
diff --git a/GitCandy.Web/GitCandy.Web.csproj b/GitCandy.Web/GitCandy.Web.csproj
index 2369ec4..07ecf0d 100644
--- a/GitCandy.Web/GitCandy.Web.csproj
+++ b/GitCandy.Web/GitCandy.Web.csproj
@@ -271,10 +271,6 @@
       <Generator>RazorGenerator</Generator>
       <LastGenOutput>Edit.generated.cs</LastGenOutput>
     </Content>
-    <Content Include="Views\Setting\ReGenSsh.cshtml">
-      <Generator>RazorGenerator</Generator>
-      <LastGenOutput>ReGenSsh.generated.cs</LastGenOutput>
-    </Content>
     <Content Include="Views\Setting\Restart.cshtml">
       <Generator>RazorGenerator</Generator>
       <LastGenOutput>Restart.generated.cs</LastGenOutput>
@@ -344,10 +340,8 @@
     <Compile Include="App_Start\AppInfomation.cs" />
     <Compile Include="App_Start\FilterConfig.cs" />
     <Compile Include="App_Start\RouteConfig.cs" />
-    <Compile Include="App_Start\SshServerConfig.cs" />
     <Compile Include="Areas\GitCandy\Controllers\RepositoryController.cs" />
     <Compile Include="Areas\GitCandy\Controllers\AuthorizationLogController.cs" />
-    <Compile Include="Areas\GitCandy\Controllers\SshKeyController.cs" />
     <Compile Include="Areas\GitCandy\Controllers\UserController.cs" />
     <Compile Include="Areas\GitCandy\Controllers\UserRepositoryController.cs" />
     <Compile Include="Areas\GitCandy\Controllers\UserTeamController.cs" />
@@ -383,7 +377,6 @@
     <Compile Include="Git\CommitsAccessor.cs" />
     <Compile Include="Git\ContributorsAccessor.cs" />
     <Compile Include="Git\GitService.cs" />
-    <Compile Include="Git\GitSshService.cs" />
     <Compile Include="Git\HistoryDivergenceAccessor.cs" />
     <Compile Include="Git\LastCommitAccessor.cs" />
     <Compile Include="Git\RepositorySizeAccessor.cs" />
@@ -585,11 +578,6 @@
       <DesignTime>True</DesignTime>
       <DependentUpon>Edit.cshtml</DependentUpon>
     </Compile>
-    <Compile Include="Views\Setting\ReGenSsh.generated.cs">
-      <AutoGen>True</AutoGen>
-      <DesignTime>True</DesignTime>
-      <DependentUpon>ReGenSsh.cshtml</DependentUpon>
-    </Compile>
     <Compile Include="Views\Setting\Restart.generated.cs">
       <AutoGen>True</AutoGen>
       <DesignTime>True</DesignTime>
Modified +2 -2
diff --git a/GitCandy.Web/Global.asax.cs b/GitCandy.Web/Global.asax.cs
index 546c36e..66d7b1b 100644
--- a/GitCandy.Web/Global.asax.cs
+++ b/GitCandy.Web/Global.asax.cs
@@ -14,7 +14,7 @@ namespace GitCandy
     {
         protected void Application_Start()
         {
-            XTrace.WriteVersion(this.GetType().Assembly);
+            XTrace.WriteVersion(GetType().Assembly);
 
             AreaRegistration.RegisterAllAreas();
 
@@ -22,7 +22,7 @@ namespace GitCandy
             RouteConfig.RegisterRoutes(RouteTable.Routes);
 
             GitCacheAccessor.Initialize();
-            SshServerConfig.StartSshServer();
+            //SshServerConfig.StartSshServer();
         }
 
         protected void Application_AcquireRequestState()
Modified +5 -3
diff --git a/GitCandy.Web/Properties/AssemblyInfo.cs b/GitCandy.Web/Properties/AssemblyInfo.cs
index a961797..05d67e6 100644
--- a/GitCandy.Web/Properties/AssemblyInfo.cs
+++ b/GitCandy.Web/Properties/AssemblyInfo.cs
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("")]
 [assembly: AssemblyProduct("GitCandy.Web")]
-[assembly: AssemblyCopyright("Copyright © 新生命开发团队 2002-2016")]
+[assembly: AssemblyCopyright("Copyright © 新生命开发团队 2002-2017")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
@@ -32,10 +32,12 @@ using System.Runtime.InteropServices;
 //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
 // 方法是按如下所示使用“*”: :
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.2.*")]
-[assembly: AssemblyFileVersion("1.2.2017.0124")]
+[assembly: AssemblyVersion("1.3.*")]
+[assembly: AssemblyFileVersion("1.3.2017.0824")]
 
 /*
+ * v1.3.2017.0824   全面停用SSH
+ * 
  * v1.2.2017.0124   Markdown语法增强,支持相对路径引用图片和链接
  * 
  * v1.1.2016.1124   仓库归属于个人或团队
Modified +0 -1
diff --git a/GitCandy.Web/Views/Home/About.cshtml b/GitCandy.Web/Views/Home/About.cshtml
index 33e3e37..9794063 100644
--- a/GitCandy.Web/Views/Home/About.cshtml
+++ b/GitCandy.Web/Views/Home/About.cshtml
@@ -9,7 +9,6 @@
 * [ASP.NET MVC](http://aspnetwebstack.codeplex.com/) @@ [Apache License 2.0](http://aspnetwebstack.codeplex.com/license)
 * [Bootstrap](http://github.com/twbs/bootstrap) @@ [MIT License](http://github.com/twbs/bootstrap/blob/master/LICENSE)
 * [Bootstrap-switch](http://github.com/nostalgiaz/bootstrap-switch) @@ [Apache License 2.0](http://github.com/nostalgiaz/bootstrap-switch/blob/master/LICENSE)
-* [FxSsh](http://github.com/Aimeast/FxSsh) @@ [MIT license](http://github.com/Aimeast/FxSsh/blob/master/LICENSE.md)
 * [Highlight.js](http://github.com/isagalaev/highlight.js) @@ [New BSD License](http://github.com/isagalaev/highlight.js/blob/master/LICENSE)
 * [jQuery](http://github.com/jquery/jquery) @@ [MIT License](http://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt)
 * [LibGit2Sharp](http://github.com/libgit2/libgit2sharp) @@ [MIT License](http://github.com/libgit2/libgit2sharp/blob/master/LICENSE.md)
Modified +1 -4
diff --git a/GitCandy.Web/Views/Home/About.generated.cs b/GitCandy.Web/Views/Home/About.generated.cs
index 52a3370..6a3adbe 100644
--- a/GitCandy.Web/Views/Home/About.generated.cs
+++ b/GitCandy.Web/Views/Home/About.generated.cs
@@ -89,10 +89,7 @@ WriteLiteral("@ [MIT License](http://github.com/twbs/bootstrap/blob/master/LICEN
 "ap-switch](http://github.com/nostalgiaz/bootstrap-switch) ");
 
 WriteLiteral("@ [Apache License 2.0](http://github.com/nostalgiaz/bootstrap-switch/blob/master/" +
-"LICENSE)\r\n* [FxSsh](http://github.com/Aimeast/FxSsh) ");
-
-WriteLiteral("@ [MIT license](http://github.com/Aimeast/FxSsh/blob/master/LICENSE.md)\r\n* [Highl" +
-"ight.js](http://github.com/isagalaev/highlight.js) ");
+"LICENSE)\r\n* [Highlight.js](http://github.com/isagalaev/highlight.js) ");
 
 WriteLiteral("@ [New BSD License](http://github.com/isagalaev/highlight.js/blob/master/LICENSE)" +
 "\r\n* [jQuery](http://github.com/jquery/jquery) ");
Modified +0 -12
diff --git a/GitCandy.Web/Views/Setting/Edit.cshtml b/GitCandy.Web/Views/Setting/Edit.cshtml
index fc46636..4736527 100644
--- a/GitCandy.Web/Views/Setting/Edit.cshtml
+++ b/GitCandy.Web/Views/Setting/Edit.cshtml
@@ -24,20 +24,9 @@
             </div>
         </dd>
 
-        <dt>@Html.DisplayNameFor(s => s.EnableSsh)</dt>
-        <dd>
-            <div class="switch" data-on-label="@SR.Shared_Yes" data-off-label="@SR.Shared_No">
-                @Html.CheckBoxFor(s => s.EnableSsh, new { data_size = "small" })
-            </div>
-        </dd>
-
         <dt>@Html.DisplayNameFor(s => s.SslPort)</dt>
         <dd>@Html.TextBoxFor(s => s.SslPort, new { @class = "form-control" })</dd>
 
-        <dt>@Html.DisplayNameFor(s => s.SshPort)</dt>
-        <dd>@Html.TextBoxFor(s => s.SshPort, new { @class = "form-control" })</dd>
-
-
         <dt>@Html.DisplayNameFor(s => s.LocalSkipCustomError)</dt>
         <dd>
             <div class="switch" data-on-label="@SR.Shared_Yes" data-off-label="@SR.Shared_No">
@@ -87,7 +76,6 @@
         <dd>
             <button type="submit" class="btn btn-primary">@SR.Shared_Save</button> &nbsp;
             <button type="reset" class="btn btn-inverse">@SR.Shared_Reset</button> &nbsp;
-            @Html.ActionLink(SR.Setting_ReGenSsh, "ReGenSsh", null, new { @class = "btn btn-danger" }) &nbsp;
             @Html.ActionLink(SR.Shared_Restart, "Restart", null, new { @class = "btn btn-danger" }) &nbsp;
         </dd>
     </dl>
Modified +35 -109
diff --git a/GitCandy.Web/Views/Setting/Edit.generated.cs b/GitCandy.Web/Views/Setting/Edit.generated.cs
index 508c4bd..745fe53 100644
--- a/GitCandy.Web/Views/Setting/Edit.generated.cs
+++ b/GitCandy.Web/Views/Setting/Edit.generated.cs
@@ -27,11 +27,12 @@ namespace ASP
     using System.Web.UI;
     using System.Web.WebPages;
     using GitCandy;
-    using GitCandy.Web.App_GlobalResources;
     using GitCandy.Base;
     using GitCandy.Configuration;
     using GitCandy.Extensions;
     using GitCandy.Models;
+    using GitCandy.Web;
+    using GitCandy.Web.App_GlobalResources;
     using NewLife;
     using NewLife.Cube;
     using NewLife.Reflection;
@@ -176,52 +177,6 @@ WriteLiteral("\r\n            </div>\r\n        </dd>\r\n\r\n        <dt>");
 
             
             #line 27 "..\..\Views\Setting\Edit.cshtml"
-       Write(Html.DisplayNameFor(s => s.EnableSsh));
-
-            
-            #line default
-            #line hidden
-WriteLiteral("</dt>\r\n        <dd>\r\n            <div");
-
-WriteLiteral(" class=\"switch\"");
-
-WriteLiteral(" data-on-label=\"");
-
-            
-            #line 29 "..\..\Views\Setting\Edit.cshtml"
-                                          Write(SR.Shared_Yes);
-
-            
-            #line default
-            #line hidden
-WriteLiteral("\"");
-
-WriteLiteral(" data-off-label=\"");
-
-            
-            #line 29 "..\..\Views\Setting\Edit.cshtml"
-                                                                          Write(SR.Shared_No);
-
-            
-            #line default
-            #line hidden
-WriteLiteral("\"");
-
-WriteLiteral(">\r\n");
-
-WriteLiteral("                ");
-
-            
-            #line 30 "..\..\Views\Setting\Edit.cshtml"
-           Write(Html.CheckBoxFor(s => s.EnableSsh, new { data_size = "small" }));
-
-            
-            #line default
-            #line hidden
-WriteLiteral("\r\n            </div>\r\n        </dd>\r\n\r\n        <dt>");
-
-            
-            #line 34 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.DisplayNameFor(s => s.SslPort));
 
             
@@ -230,7 +185,7 @@ WriteLiteral("\r\n            </div>\r\n        </dd>\r\n\r\n        <dt>");
 WriteLiteral("</dt>\r\n        <dd>");
 
             
-            #line 35 "..\..\Views\Setting\Edit.cshtml"
+            #line 28 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.TextBoxFor(s => s.SslPort, new { @class = "form-control" }));
 
             
@@ -239,25 +194,7 @@ WriteLiteral("</dt>\r\n        <dd>");
 WriteLiteral("</dd>\r\n\r\n        <dt>");
 
             
-            #line 37 "..\..\Views\Setting\Edit.cshtml"
-       Write(Html.DisplayNameFor(s => s.SshPort));
-
-            
-            #line default
-            #line hidden
-WriteLiteral("</dt>\r\n        <dd>");
-
-            
-            #line 38 "..\..\Views\Setting\Edit.cshtml"
-       Write(Html.TextBoxFor(s => s.SshPort, new { @class = "form-control" }));
-
-            
-            #line default
-            #line hidden
-WriteLiteral("</dd>\r\n\r\n\r\n        <dt>");
-
-            
-            #line 41 "..\..\Views\Setting\Edit.cshtml"
+            #line 30 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.DisplayNameFor(s => s.LocalSkipCustomError));
 
             
@@ -270,7 +207,7 @@ WriteLiteral(" class=\"switch\"");
 WriteLiteral(" data-on-label=\"");
 
             
-            #line 43 "..\..\Views\Setting\Edit.cshtml"
+            #line 32 "..\..\Views\Setting\Edit.cshtml"
                                           Write(SR.Shared_Yes);
 
             
@@ -281,7 +218,7 @@ WriteLiteral("\"");
 WriteLiteral(" data-off-label=\"");
 
             
-            #line 43 "..\..\Views\Setting\Edit.cshtml"
+            #line 32 "..\..\Views\Setting\Edit.cshtml"
                                                                           Write(SR.Shared_No);
 
             
@@ -294,7 +231,7 @@ WriteLiteral(">\r\n");
 WriteLiteral("                ");
 
             
-            #line 44 "..\..\Views\Setting\Edit.cshtml"
+            #line 33 "..\..\Views\Setting\Edit.cshtml"
            Write(Html.CheckBoxFor(s => s.LocalSkipCustomError, new { data_size = "small" }));
 
             
@@ -303,7 +240,7 @@ WriteLiteral("                ");
 WriteLiteral("\r\n            </div>\r\n        </dd>\r\n\r\n        <dt>");
 
             
-            #line 48 "..\..\Views\Setting\Edit.cshtml"
+            #line 37 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.DisplayNameFor(s => s.AllowRegisterUser));
 
             
@@ -316,7 +253,7 @@ WriteLiteral(" class=\"switch\"");
 WriteLiteral(" data-on-label=\"");
 
             
-            #line 50 "..\..\Views\Setting\Edit.cshtml"
+            #line 39 "..\..\Views\Setting\Edit.cshtml"
                                           Write(SR.Shared_Yes);
 
             
@@ -327,7 +264,7 @@ WriteLiteral("\"");
 WriteLiteral(" data-off-label=\"");
 
             
-            #line 50 "..\..\Views\Setting\Edit.cshtml"
+            #line 39 "..\..\Views\Setting\Edit.cshtml"
                                                                           Write(SR.Shared_No);
 
             
@@ -340,7 +277,7 @@ WriteLiteral(">\r\n");
 WriteLiteral("                ");
 
             
-            #line 51 "..\..\Views\Setting\Edit.cshtml"
+            #line 40 "..\..\Views\Setting\Edit.cshtml"
            Write(Html.CheckBoxFor(s => s.AllowRegisterUser, new { data_size = "small" }));
 
             
@@ -349,7 +286,7 @@ WriteLiteral("                ");
 WriteLiteral("\r\n            </div>\r\n        </dd>\r\n\r\n        <dt>");
 
             
-            #line 55 "..\..\Views\Setting\Edit.cshtml"
+            #line 44 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.DisplayNameFor(s => s.AllowRepositoryCreation));
 
             
@@ -362,7 +299,7 @@ WriteLiteral(" class=\"switch\"");
 WriteLiteral(" data-on-label=\"");
 
             
-            #line 57 "..\..\Views\Setting\Edit.cshtml"
+            #line 46 "..\..\Views\Setting\Edit.cshtml"
                                           Write(SR.Shared_Yes);
 
             
@@ -373,7 +310,7 @@ WriteLiteral("\"");
 WriteLiteral(" data-off-label=\"");
 
             
-            #line 57 "..\..\Views\Setting\Edit.cshtml"
+            #line 46 "..\..\Views\Setting\Edit.cshtml"
                                                                           Write(SR.Shared_No);
 
             
@@ -386,7 +323,7 @@ WriteLiteral(">\r\n");
 WriteLiteral("                ");
 
             
-            #line 58 "..\..\Views\Setting\Edit.cshtml"
+            #line 47 "..\..\Views\Setting\Edit.cshtml"
            Write(Html.CheckBoxFor(s => s.AllowRepositoryCreation, new { data_size = "small" }));
 
             
@@ -395,7 +332,7 @@ WriteLiteral("                ");
 WriteLiteral("\r\n            </div>\r\n        </dd>\r\n\r\n        <dt>");
 
             
-            #line 62 "..\..\Views\Setting\Edit.cshtml"
+            #line 51 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.DisplayNameFor(s => s.RepositoryPath));
 
             
@@ -404,7 +341,7 @@ WriteLiteral("\r\n            </div>\r\n        </dd>\r\n\r\n        <dt>");
 WriteLiteral("</dt>\r\n        <dd>");
 
             
-            #line 63 "..\..\Views\Setting\Edit.cshtml"
+            #line 52 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.TextBoxFor(s => s.RepositoryPath, new { @class = "form-control" }));
 
             
@@ -413,7 +350,7 @@ WriteLiteral("</dt>\r\n        <dd>");
 WriteLiteral("</dd>\r\n\r\n        <dt>");
 
             
-            #line 65 "..\..\Views\Setting\Edit.cshtml"
+            #line 54 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.DisplayNameFor(s => s.CachePath));
 
             
@@ -422,7 +359,7 @@ WriteLiteral("</dd>\r\n\r\n        <dt>");
 WriteLiteral("</dt>\r\n        <dd>");
 
             
-            #line 66 "..\..\Views\Setting\Edit.cshtml"
+            #line 55 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.TextBoxFor(s => s.CachePath, new { @class = "form-control" }));
 
             
@@ -431,7 +368,7 @@ WriteLiteral("</dt>\r\n        <dd>");
 WriteLiteral("</dd>\r\n\r\n        <dt>");
 
             
-            #line 68 "..\..\Views\Setting\Edit.cshtml"
+            #line 57 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.DisplayNameFor(s => s.GitCorePath));
 
             
@@ -440,7 +377,7 @@ WriteLiteral("</dd>\r\n\r\n        <dt>");
 WriteLiteral("</dt>\r\n        <dd>");
 
             
-            #line 69 "..\..\Views\Setting\Edit.cshtml"
+            #line 58 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.TextBoxFor(s => s.GitCorePath, new { @class = "form-control" }));
 
             
@@ -449,7 +386,7 @@ WriteLiteral("</dt>\r\n        <dd>");
 WriteLiteral("</dd>\r\n\r\n        <dt>");
 
             
-            #line 71 "..\..\Views\Setting\Edit.cshtml"
+            #line 60 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.DisplayNameFor(s => s.NumberOfCommitsPerPage));
 
             
@@ -458,7 +395,7 @@ WriteLiteral("</dd>\r\n\r\n        <dt>");
 WriteLiteral("</dt>\r\n        <dd>");
 
             
-            #line 72 "..\..\Views\Setting\Edit.cshtml"
+            #line 61 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.TextBoxFor(s => s.NumberOfCommitsPerPage, new { @class = "form-control" }));
 
             
@@ -467,7 +404,7 @@ WriteLiteral("</dt>\r\n        <dd>");
 WriteLiteral("</dd>\r\n\r\n        <dt>");
 
             
-            #line 74 "..\..\Views\Setting\Edit.cshtml"
+            #line 63 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.DisplayNameFor(s => s.NumberOfItemsPerList));
 
             
@@ -476,7 +413,7 @@ WriteLiteral("</dd>\r\n\r\n        <dt>");
 WriteLiteral("</dt>\r\n        <dd>");
 
             
-            #line 75 "..\..\Views\Setting\Edit.cshtml"
+            #line 64 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.TextBoxFor(s => s.NumberOfItemsPerList, new { @class = "form-control" }));
 
             
@@ -485,7 +422,7 @@ WriteLiteral("</dt>\r\n        <dd>");
 WriteLiteral("</dd>\r\n\r\n        <dt>");
 
             
-            #line 77 "..\..\Views\Setting\Edit.cshtml"
+            #line 66 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.DisplayNameFor(s => s.NumberOfRepositoryContributors));
 
             
@@ -494,7 +431,7 @@ WriteLiteral("</dd>\r\n\r\n        <dt>");
 WriteLiteral("</dt>\r\n        <dd>");
 
             
-            #line 78 "..\..\Views\Setting\Edit.cshtml"
+            #line 67 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.TextBoxFor(s => s.NumberOfRepositoryContributors, new { @class = "form-control" }));
 
             
@@ -503,13 +440,13 @@ WriteLiteral("</dt>\r\n        <dd>");
 WriteLiteral("</dd>\r\n\r\n");
 
             
-            #line 80 "..\..\Views\Setting\Edit.cshtml"
+            #line 69 "..\..\Views\Setting\Edit.cshtml"
         
             
             #line default
             #line hidden
             
-            #line 80 "..\..\Views\Setting\Edit.cshtml"
+            #line 69 "..\..\Views\Setting\Edit.cshtml"
          if (!ViewData.ModelState.IsValid)
         {
 
@@ -521,7 +458,7 @@ WriteLiteral("        <dt></dt>\r\n");
 WriteLiteral("        <dd>");
 
             
-            #line 83 "..\..\Views\Setting\Edit.cshtml"
+            #line 72 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.ValidationSummary(true, SR.Setting_UpdateSettingsUnsuccessfull, new { @class = "alert alert-dismissable alert-danger" }));
 
             
@@ -530,7 +467,7 @@ WriteLiteral("        <dd>");
 WriteLiteral("</dd>\r\n");
 
             
-            #line 84 "..\..\Views\Setting\Edit.cshtml"
+            #line 73 "..\..\Views\Setting\Edit.cshtml"
         }
 
             
@@ -545,7 +482,7 @@ WriteLiteral(" class=\"btn btn-primary\"");
 WriteLiteral(">");
 
             
-            #line 88 "..\..\Views\Setting\Edit.cshtml"
+            #line 77 "..\..\Views\Setting\Edit.cshtml"
                                                      Write(SR.Shared_Save);
 
             
@@ -560,7 +497,7 @@ WriteLiteral(" class=\"btn btn-inverse\"");
 WriteLiteral(">");
 
             
-            #line 89 "..\..\Views\Setting\Edit.cshtml"
+            #line 78 "..\..\Views\Setting\Edit.cshtml"
                                                     Write(SR.Shared_Reset);
 
             
@@ -571,18 +508,7 @@ WriteLiteral("</button> &nbsp;\r\n");
 WriteLiteral("            ");
 
             
-            #line 90 "..\..\Views\Setting\Edit.cshtml"
-       Write(Html.ActionLink(SR.Setting_ReGenSsh, "ReGenSsh", null, new { @class = "btn btn-danger" }));
-
-            
-            #line default
-            #line hidden
-WriteLiteral(" &nbsp;\r\n");
-
-WriteLiteral("            ");
-
-            
-            #line 91 "..\..\Views\Setting\Edit.cshtml"
+            #line 79 "..\..\Views\Setting\Edit.cshtml"
        Write(Html.ActionLink(SR.Shared_Restart, "Restart", null, new { @class = "btn btn-danger" }));
 
             
@@ -591,7 +517,7 @@ WriteLiteral("            ");
 WriteLiteral(" &nbsp;\r\n        </dd>\r\n    </dl>\r\n");
 
             
-            #line 94 "..\..\Views\Setting\Edit.cshtml"
+            #line 82 "..\..\Views\Setting\Edit.cshtml"
 }
 
             
Modified +1 -1
diff --git a/GitCandy.Web/Views/Shared/_FrontLayout.cshtml b/GitCandy.Web/Views/Shared/_FrontLayout.cshtml
index 45f0484..e54dd41 100644
--- a/GitCandy.Web/Views/Shared/_FrontLayout.cshtml
+++ b/GitCandy.Web/Views/Shared/_FrontLayout.cshtml
@@ -31,13 +31,13 @@
             <div class="navbar-collapse collapse navbar-responsive-collapse">
                 <ul class="nav navbar-nav">
                     <li>@Html.ActionLink(SR.Shared_Repositories, "Index", "Repository")</li>
-                    <li>@Html.ActionLink(SR.Shared_About, "About", "Home")</li>
                     @if (token != null && token.IsAdmin)
                     {
                         <li class="">@Html.ActionLink(SR.Shared_Users, "Index", "Account")</li>
                         <li class="">@Html.ActionLink(SR.Shared_Teams, "Index", "Team")</li>
                         <li class="">@Html.ActionLink(SR.Shared_Settings, "Edit", "Setting")</li>
                     }
+                    <li>@Html.ActionLink(SR.Shared_About, "About", "Home")</li>
                 </ul>
                 <ul class="nav navbar-nav navbar-right">
                     @if (token == null)
Modified +16 -16
diff --git a/GitCandy.Web/Views/Shared/_FrontLayout.generated.cs b/GitCandy.Web/Views/Shared/_FrontLayout.generated.cs
index bae9687..2093ffc 100644
--- a/GitCandy.Web/Views/Shared/_FrontLayout.generated.cs
+++ b/GitCandy.Web/Views/Shared/_FrontLayout.generated.cs
@@ -213,25 +213,16 @@ WriteLiteral(">\r\n                    <li>");
             
             #line default
             #line hidden
-WriteLiteral("</li>\r\n                    <li>");
-
-            
-            #line 34 "..\..\Views\Shared\_FrontLayout.cshtml"
-                   Write(Html.ActionLink(SR.Shared_About, "About", "Home"));
-
-            
-            #line default
-            #line hidden
 WriteLiteral("</li>\r\n");
 
             
-            #line 35 "..\..\Views\Shared\_FrontLayout.cshtml"
+            #line 34 "..\..\Views\Shared\_FrontLayout.cshtml"
                     
             
             #line default
             #line hidden
             
-            #line 35 "..\..\Views\Shared\_FrontLayout.cshtml"
+            #line 34 "..\..\Views\Shared\_FrontLayout.cshtml"
                      if (token != null && token.IsAdmin)
                     {
 
@@ -245,7 +236,7 @@ WriteLiteral(" class=\"\"");
 WriteLiteral(">");
 
             
-            #line 37 "..\..\Views\Shared\_FrontLayout.cshtml"
+            #line 36 "..\..\Views\Shared\_FrontLayout.cshtml"
                                 Write(Html.ActionLink(SR.Shared_Users, "Index", "Account"));
 
             
@@ -260,7 +251,7 @@ WriteLiteral(" class=\"\"");
 WriteLiteral(">");
 
             
-            #line 38 "..\..\Views\Shared\_FrontLayout.cshtml"
+            #line 37 "..\..\Views\Shared\_FrontLayout.cshtml"
                                 Write(Html.ActionLink(SR.Shared_Teams, "Index", "Team"));
 
             
@@ -275,7 +266,7 @@ WriteLiteral(" class=\"\"");
 WriteLiteral(">");
 
             
-            #line 39 "..\..\Views\Shared\_FrontLayout.cshtml"
+            #line 38 "..\..\Views\Shared\_FrontLayout.cshtml"
                                 Write(Html.ActionLink(SR.Shared_Settings, "Edit", "Setting"));
 
             
@@ -284,13 +275,22 @@ WriteLiteral(">");
 WriteLiteral("</li>\r\n");
 
             
-            #line 40 "..\..\Views\Shared\_FrontLayout.cshtml"
+            #line 39 "..\..\Views\Shared\_FrontLayout.cshtml"
                     }
 
             
             #line default
             #line hidden
-WriteLiteral("                </ul>\r\n                <ul");
+WriteLiteral("                    <li>");
+
+            
+            #line 40 "..\..\Views\Shared\_FrontLayout.cshtml"
+                   Write(Html.ActionLink(SR.Shared_About, "About", "Home"));
+
+            
+            #line default
+            #line hidden
+WriteLiteral("</li>\r\n                </ul>\r\n                <ul");
 
 WriteLiteral(" class=\"nav navbar-nav navbar-right\"");
 
Modified +6 -6
diff --git a/GitCandy/Configuration/UserConfiguration.cs b/GitCandy/Configuration/UserConfiguration.cs
index bd82d4b..c69cd2c 100644
--- a/GitCandy/Configuration/UserConfiguration.cs
+++ b/GitCandy/Configuration/UserConfiguration.cs
@@ -23,13 +23,13 @@ namespace GitCandy.Configuration
         [DisplayName("SSL端口")]
         public int SslPort { get; set; } = 443;
 
-        /// <summary>开启SSH</summary>
-        [DisplayName("开启SSH")]
-        public bool EnableSsh { get; set; } = true;
+        ///// <summary>开启SSH</summary>
+        //[DisplayName("开启SSH")]
+        //public bool EnableSsh { get; set; } = true;
 
-        /// <summary>SSH端口</summary>
-        [DisplayName("SSH端口")]
-        public int SshPort { get; set; } = 22;
+        ///// <summary>SSH端口</summary>
+        //[DisplayName("SSH端口")]
+        //public int SshPort { get; set; } = 22;
 
         /// <summary>跳过本地错误</summary>
         [DisplayName("跳过本地错误")]
Modified +17 -17
diff --git "a/GitCandy/Entity/Entity/\347\224\250\346\210\267.Biz.cs" "b/GitCandy/Entity/Entity/\347\224\250\346\210\267.Biz.cs"
index 443a1d7..41c3055 100644
--- "a/GitCandy/Entity/Entity/\347\224\250\346\210\267.Biz.cs"
+++ "b/GitCandy/Entity/Entity/\347\224\250\346\210\267.Biz.cs"
@@ -54,7 +54,7 @@ namespace NewLife.GitCandy.Entity
             (Teams as IEntityList)?.Delete(true);
             UserTeam.FindAllByTeamID(ID).Delete(true);
             (Repositories as IEntityList)?.Delete(true);
-            (SshKeys as IEntityList)?.Delete(true);
+            //(SshKeys as IEntityList)?.Delete(true);
             Repository.FindAllByOwnerID(ID).Delete();
             AuthorizationLog.FindAllByUserID(ID).Delete();
 
@@ -101,22 +101,22 @@ namespace NewLife.GitCandy.Entity
 
         public String[] RepositoryNames { get { return Repositories?.Select(e => e.RepositoryName).ToArray(); } }
 
-        private List<SshKey> _SshKeys;
-        /// <summary>SSH密钥</summary>
-        public List<SshKey> SshKeys
-        {
-            get
-            {
-                if (_SshKeys == null && !Dirtys.ContainsKey("SshKeys"))
-                {
-                    _SshKeys = SshKey.FindAllByUserID(ID);
-
-                    Dirtys["SshKeys"] = true;
-                }
-                return _SshKeys;
-            }
-            set { _SshKeys = value; }
-        }
+        //private List<SshKey> _SshKeys;
+        ///// <summary>SSH密钥</summary>
+        //public List<SshKey> SshKeys
+        //{
+        //    get
+        //    {
+        //        if (_SshKeys == null && !Dirtys.ContainsKey("SshKeys"))
+        //        {
+        //            _SshKeys = SshKey.FindAllByUserID(ID);
+
+        //            Dirtys["SshKeys"] = true;
+        //        }
+        //        return _SshKeys;
+        //    }
+        //    set { _SshKeys = value; }
+        //}
         #endregion
 
         #region 扩展查询
Modified +0 -65
diff --git a/GitCandy/GitCandy.csproj b/GitCandy/GitCandy.csproj
index cfc917d..a5c019a 100644
--- a/GitCandy/GitCandy.csproj
+++ b/GitCandy/GitCandy.csproj
@@ -58,8 +58,6 @@
     <Compile Include="Base\StringLogicalComparer.cs" />
     <Compile Include="Configuration\HostKey.cs" />
     <Compile Include="Configuration\UserConfiguration.cs" />
-    <Compile Include="Entity\Entity\SSH密钥.Biz.cs" />
-    <Compile Include="Entity\Entity\SSH密钥.cs" />
     <Compile Include="Entity\Entity\仓库.Biz.cs" />
     <Compile Include="Entity\Entity\仓库.cs" />
     <Compile Include="Entity\Entity\用户.Biz.cs" />
@@ -72,69 +70,6 @@
     <Compile Include="Entity\Entity\认证日志.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Security\Token.cs" />
-    <Compile Include="Ssh\Algorithms\CipherInfo.cs" />
-    <Compile Include="Ssh\Algorithms\CipherModeEx.cs" />
-    <Compile Include="Ssh\Algorithms\CompressionAlgorithm.cs" />
-    <Compile Include="Ssh\Algorithms\CompressionAlgorithmContract.cs" />
-    <Compile Include="Ssh\Algorithms\CtrModeCryptoTransform.cs" />
-    <Compile Include="Ssh\Algorithms\DiffieHellman.cs" />
-    <Compile Include="Ssh\Algorithms\DiffieHellmanGroupSha1.cs" />
-    <Compile Include="Ssh\Algorithms\DssKey.cs" />
-    <Compile Include="Ssh\Algorithms\EncryptionAlgorithm.cs" />
-    <Compile Include="Ssh\Algorithms\HmacAlgorithm.cs" />
-    <Compile Include="Ssh\Algorithms\HmacInfo.cs" />
-    <Compile Include="Ssh\Algorithms\KexAlgorithm.cs" />
-    <Compile Include="Ssh\Algorithms\KexAlgorithmContract.cs" />
-    <Compile Include="Ssh\Algorithms\NoCompression.cs" />
-    <Compile Include="Ssh\Algorithms\PublicKeyAlgorithm.cs" />
-    <Compile Include="Ssh\Algorithms\PublicKeyAlgorithmContract.cs" />
-    <Compile Include="Ssh\Algorithms\RsaKey.cs" />
-    <Compile Include="Ssh\ChannelOpenFailureReason.cs" />
-    <Compile Include="Ssh\DisconnectReason.cs" />
-    <Compile Include="Ssh\KeyUtils.cs" />
-    <Compile Include="Ssh\Messages\ConnectionServiceMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\ChannelCloseMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\ChannelDataMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\ChannelEofMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\ChannelFailureMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\ChannelOpenConfirmationMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\ChannelOpenFailureMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\ChannelOpenMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\ChannelRequestMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\ChannelSuccessMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\ChannelWindowAdjustMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\CommandRequestMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\ExitStatusMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\SessionOpenConfirmationMessage.cs" />
-    <Compile Include="Ssh\Messages\Connection\SessionOpenMessage.cs" />
-    <Compile Include="Ssh\Messages\DisconnectMessage.cs" />
-    <Compile Include="Ssh\Messages\KeyExchangeDhInitMessage.cs" />
-    <Compile Include="Ssh\Messages\KeyExchangeDhReplyMessage.cs" />
-    <Compile Include="Ssh\Messages\KeyExchangeInitMessage.cs" />
-    <Compile Include="Ssh\Messages\Message.cs" />
-    <Compile Include="Ssh\Messages\MessageAttribute.cs" />
-    <Compile Include="Ssh\Messages\NewKeysMessage.cs" />
-    <Compile Include="Ssh\Messages\ServiceAcceptMessage.cs" />
-    <Compile Include="Ssh\Messages\ServiceRequestMessage.cs" />
-    <Compile Include="Ssh\Messages\UnimplementedMessage.cs" />
-    <Compile Include="Ssh\Messages\UserauthServiceMessage.cs" />
-    <Compile Include="Ssh\Messages\Userauth\FailureMessage.cs" />
-    <Compile Include="Ssh\Messages\Userauth\PublicKeyOkMessage.cs" />
-    <Compile Include="Ssh\Messages\Userauth\PublicKeyRequestMessage.cs" />
-    <Compile Include="Ssh\Messages\Userauth\RequestMessage.cs" />
-    <Compile Include="Ssh\Messages\Userauth\SuccessMessage.cs" />
-    <Compile Include="Ssh\Services\Channel.cs" />
-    <Compile Include="Ssh\Services\ConnectionService.cs" />
-    <Compile Include="Ssh\Services\SessionChannel.cs" />
-    <Compile Include="Ssh\Services\SessionRequestedArgs.cs" />
-    <Compile Include="Ssh\Services\SshService.cs" />
-    <Compile Include="Ssh\Services\UserauthArgs.cs" />
-    <Compile Include="Ssh\Services\UserauthService.cs" />
-    <Compile Include="Ssh\Session.cs" />
-    <Compile Include="Ssh\SshConnectionException.cs" />
-    <Compile Include="Ssh\SshDataWorker.cs" />
-    <Compile Include="Ssh\SshServer.cs" />
-    <Compile Include="Ssh\StartingInfo.cs" />
   </ItemGroup>
   <ItemGroup>
     <Content Include="Entity\GitCandy数据字典.htm" />
Modified +9 -3
diff --git a/GitCandy/Properties/AssemblyInfo.cs b/GitCandy/Properties/AssemblyInfo.cs
index 47db423..ead72b7 100644
--- a/GitCandy/Properties/AssemblyInfo.cs
+++ b/GitCandy/Properties/AssemblyInfo.cs
@@ -9,7 +9,7 @@ using System.Runtime.InteropServices;
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyCompany("")]
 [assembly: AssemblyProduct("GitCandy")]
-[assembly: AssemblyCopyright("Copyright © 新生命开发团队 2002-2016")]
+[assembly: AssemblyCopyright("Copyright © 新生命开发团队 2002-2017")]
 
 #if DEBUG
 [assembly: AssemblyConfiguration("Debug")]
@@ -34,9 +34,15 @@ using System.Runtime.InteropServices;
 //
 // You can specify all the values or you can default the Revision and Build Numbers
 // by using the '*' as shown below:
-[assembly: AssemblyVersion("1.2.*")]
-[assembly: AssemblyFileVersion("1.2.2016.0124")]
+[assembly: AssemblyVersion("1.3.*")]
+[assembly: AssemblyFileVersion("1.3.2017.0824")]
 
 /*
+ * v1.3.2017.0824   全面停用SSH
+ * 
+ * v1.2.2017.0124   Markdown语法增强,支持相对路径引用图片和链接
+ * 
+ * v1.1.2016.1124   仓库归属于个人或团队
+ * 
  * v1.0.2016.1122   迁移到XCode,合并魔方
  */