aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Sharshakov <d3dx12.xx@gmail.com>2023-04-10 20:22:51 +0300
committerGitHub <noreply@github.com>2023-04-10 13:22:51 -0400
commiteb397c3e631099686f8c11cbd0ca303fd37908ba (patch)
tree3b96a10c8ef3ccd06f958ab471db420d596d11e5
parentd7552c27d38f5ad342fe1c17cedfb6e22ba4d5d8 (diff)
downloadgitea-eb397c3e631099686f8c11cbd0ca303fd37908ba.tar.gz
gitea-eb397c3e631099686f8c11cbd0ca303fd37908ba.zip
Allow adding SSH keys even if SSH server is disabled (#24025)
This is useful in case you want to use them for signature verification. A notice is added to avoid confusion.
-rw-r--r--models/asymkey/ssh_key_parse.go5
-rw-r--r--options/locale/locale_en-US.ini1
-rw-r--r--templates/user/settings/keys_ssh.tmpl15
3 files changed, 9 insertions, 12 deletions
diff --git a/models/asymkey/ssh_key_parse.go b/models/asymkey/ssh_key_parse.go
index 8693c87e76..7e61e61dae 100644
--- a/models/asymkey/ssh_key_parse.go
+++ b/models/asymkey/ssh_key_parse.go
@@ -16,7 +16,6 @@ import (
"strconv"
"strings"
- "code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/process"
"code.gitea.io/gitea/modules/setting"
@@ -158,10 +157,6 @@ func parseKeyString(content string) (string, error) {
// CheckPublicKeyString checks if the given public key string is recognized by SSH.
// It returns the actual public key line on success.
func CheckPublicKeyString(content string) (_ string, err error) {
- if setting.SSH.Disabled {
- return "", db.ErrSSHDisabled{}
- }
-
content, err = parseKeyString(content)
if err != nil {
return "", err
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index 7e9675ee73..bd7e64fc6d 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -739,6 +739,7 @@ principal_state_desc = This principal has been used in the last 7 days
show_openid = Show on profile
hide_openid = Hide from profile
ssh_disabled = SSH Disabled
+ssh_signonly = SSH is currently disabled so these keys are only used for commit signature verification.
ssh_externally_managed = This SSH key is externally managed for this user
manage_social = Manage Associated Social Accounts
social_desc = These social accounts are linked to your Gitea account. Make sure you recognize all of them as they can be used to sign in to your Gitea account.
diff --git a/templates/user/settings/keys_ssh.tmpl b/templates/user/settings/keys_ssh.tmpl
index 5d518f3bb0..160dedc93c 100644
--- a/templates/user/settings/keys_ssh.tmpl
+++ b/templates/user/settings/keys_ssh.tmpl
@@ -1,13 +1,9 @@
<h4 class="ui top attached header">
{{.locale.Tr "settings.manage_ssh_keys"}}
<div class="ui right">
- {{if not .DisableSSH}}
- <button id="add-ssh-button" class="ui primary tiny show-panel button" data-panel="#add-ssh-key-panel">
- {{.locale.Tr "settings.add_key"}}
- </button>
- {{else}}
- <button class="ui primary tiny button disabled">{{.locale.Tr "settings.ssh_disabled"}}</button>
- {{end}}
+ <button id="add-ssh-button" class="ui primary tiny show-panel button" data-panel="#add-ssh-key-panel">
+ {{.locale.Tr "settings.add_key"}}
+ </button>
</div>
</h4>
<div class="ui attached segment">
@@ -35,6 +31,11 @@
<div class="item">
{{.locale.Tr "settings.ssh_desc"}}
</div>
+ {{if .DisableSSH}}
+ <div class="item">
+ {{.locale.Tr "settings.ssh_signonly"}}
+ </div>
+ {{end}}
{{range $index, $key := .Keys}}
<div class="item">
<div class="right floated content">