mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	* Allow custom SSH user in UI for built-in SSH server (#2617) * Some fixes * Did make fmt * Updated according to review - Renamed config to BUILTIN_SSH_SERVER_USER - Removed unnecessary default string value for config item * Updated according to review * Fixed some minor issues
This commit is contained in:
		
							
								
								
									
										2
									
								
								conf/app.ini
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								conf/app.ini
									
									
									
									
										vendored
									
									
								
							@@ -113,6 +113,8 @@ LOCAL_ROOT_URL = %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/
 | 
				
			|||||||
DISABLE_SSH = false
 | 
					DISABLE_SSH = false
 | 
				
			||||||
; Whether use builtin SSH server or not.
 | 
					; Whether use builtin SSH server or not.
 | 
				
			||||||
START_SSH_SERVER = false
 | 
					START_SSH_SERVER = false
 | 
				
			||||||
 | 
					; Username to use for builtin SSH server. If blank, then it is the value of RUN_USER.
 | 
				
			||||||
 | 
					BUILTIN_SSH_SERVER_USER =
 | 
				
			||||||
; Domain name to be exposed in clone URL
 | 
					; Domain name to be exposed in clone URL
 | 
				
			||||||
SSH_DOMAIN = %(DOMAIN)s
 | 
					SSH_DOMAIN = %(DOMAIN)s
 | 
				
			||||||
; Network interface builtin SSH server listens on
 | 
					; Network interface builtin SSH server listens on
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -806,14 +806,19 @@ func (repo *Repository) cloneLink(isWiki bool) *CloneLink {
 | 
				
			|||||||
		repoName += ".wiki"
 | 
							repoName += ".wiki"
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						sshUser := setting.RunUser
 | 
				
			||||||
 | 
						if setting.SSH.StartBuiltinServer {
 | 
				
			||||||
 | 
							sshUser = setting.SSH.BuiltinServerUser
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	repo.Owner = repo.MustOwner()
 | 
						repo.Owner = repo.MustOwner()
 | 
				
			||||||
	cl := new(CloneLink)
 | 
						cl := new(CloneLink)
 | 
				
			||||||
	if setting.SSH.Port != 22 {
 | 
						if setting.SSH.Port != 22 {
 | 
				
			||||||
		cl.SSH = fmt.Sprintf("ssh://%s@%s:%d/%s/%s.git", setting.RunUser, setting.SSH.Domain, setting.SSH.Port, repo.Owner.Name, repoName)
 | 
							cl.SSH = fmt.Sprintf("ssh://%s@%s:%d/%s/%s.git", sshUser, setting.SSH.Domain, setting.SSH.Port, repo.Owner.Name, repoName)
 | 
				
			||||||
	} else if setting.Repository.UseCompatSSHURI {
 | 
						} else if setting.Repository.UseCompatSSHURI {
 | 
				
			||||||
		cl.SSH = fmt.Sprintf("ssh://%s@%s/%s/%s.git", setting.RunUser, setting.SSH.Domain, repo.Owner.Name, repoName)
 | 
							cl.SSH = fmt.Sprintf("ssh://%s@%s/%s/%s.git", sshUser, setting.SSH.Domain, repo.Owner.Name, repoName)
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		cl.SSH = fmt.Sprintf("%s@%s:%s/%s.git", setting.RunUser, setting.SSH.Domain, repo.Owner.Name, repoName)
 | 
							cl.SSH = fmt.Sprintf("%s@%s:%s/%s.git", sshUser, setting.SSH.Domain, repo.Owner.Name, repoName)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	cl.HTTPS = ComposeHTTPSCloneURL(repo.Owner.Name, repoName)
 | 
						cl.HTTPS = ComposeHTTPSCloneURL(repo.Owner.Name, repoName)
 | 
				
			||||||
	return cl
 | 
						return cl
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -90,6 +90,7 @@ var (
 | 
				
			|||||||
	SSH = struct {
 | 
						SSH = struct {
 | 
				
			||||||
		Disabled             bool           `ini:"DISABLE_SSH"`
 | 
							Disabled             bool           `ini:"DISABLE_SSH"`
 | 
				
			||||||
		StartBuiltinServer   bool           `ini:"START_SSH_SERVER"`
 | 
							StartBuiltinServer   bool           `ini:"START_SSH_SERVER"`
 | 
				
			||||||
 | 
							BuiltinServerUser    string         `ini:"BUILTIN_SSH_SERVER_USER"`
 | 
				
			||||||
		Domain               string         `ini:"SSH_DOMAIN"`
 | 
							Domain               string         `ini:"SSH_DOMAIN"`
 | 
				
			||||||
		Port                 int            `ini:"SSH_PORT"`
 | 
							Port                 int            `ini:"SSH_PORT"`
 | 
				
			||||||
		ListenHost           string         `ini:"SSH_LISTEN_HOST"`
 | 
							ListenHost           string         `ini:"SSH_LISTEN_HOST"`
 | 
				
			||||||
@@ -915,6 +916,8 @@ func NewContext() {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						SSH.BuiltinServerUser = Cfg.Section("server").Key("BUILTIN_SSH_SERVER_USER").MustString(RunUser)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Determine and create root git repository path.
 | 
						// Determine and create root git repository path.
 | 
				
			||||||
	sec = Cfg.Section("repository")
 | 
						sec = Cfg.Section("repository")
 | 
				
			||||||
	Repository.DisableHTTPGit = sec.Key("DISABLE_HTTP_GIT").MustBool()
 | 
						Repository.DisableHTTPGit = sec.Key("DISABLE_HTTP_GIT").MustBool()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user