diff --git a/models/asymkey/ssh_key_parse.go b/models/asymkey/ssh_key_parse.go
index 8693c87e76b2d..7e61e61dae553 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 7e9675ee73e99..bd7e64fc6da5d 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 5d518f3bb08e6..160dedc93c5af 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">