code.gitea.io/gitea@v1.22.3/templates/user/settings/keys_ssh.tmpl (about) 1 <h4 class="ui top attached header"> 2 {{ctx.Locale.Tr "settings.manage_ssh_keys"}} 3 <div class="ui right"> 4 <button id="add-ssh-button" class="ui primary tiny show-panel toggle button" data-panel="#add-ssh-key-panel"> 5 {{ctx.Locale.Tr "settings.add_key"}} 6 </button> 7 </div> 8 </h4> 9 <div class="ui attached segment"> 10 <div class="{{if not .HasSSHError}}tw-hidden{{end}} tw-mb-4" id="add-ssh-key-panel"> 11 <form class="ui form" action="{{.Link}}" method="post"> 12 {{.CsrfTokenHtml}} 13 <div class="field {{if .Err_Title}}error{{end}}"> 14 <label for="ssh-key-title">{{ctx.Locale.Tr "settings.key_name"}}</label> 15 <input id="ssh-key-title" name="title" value="{{.title}}" autofocus required maxlength="50"> 16 </div> 17 <div class="field {{if .Err_Content}}error{{end}}"> 18 <label for="ssh-key-content">{{ctx.Locale.Tr "settings.key_content"}}</label> 19 <textarea id="ssh-key-content" name="content" placeholder="{{ctx.Locale.Tr "settings.key_content_ssh_placeholder"}}" required>{{.content}}</textarea> 20 </div> 21 <input name="type" type="hidden" value="ssh"> 22 <button class="ui primary button"> 23 {{ctx.Locale.Tr "settings.add_key"}} 24 </button> 25 <button id="cancel-ssh-button" class="ui hide-panel button" data-panel="#add-ssh-key-panel"> 26 {{ctx.Locale.Tr "cancel"}} 27 </button> 28 </form> 29 </div> 30 <div id="keys-ssh" class="flex-list"> 31 <div class="flex-item"> 32 <p> 33 {{ctx.Locale.Tr "settings.ssh_desc"}}<br> 34 {{ctx.Locale.Tr "settings.ssh_helper" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/connecting-to-github-with-ssh" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/troubleshooting-ssh"}} 35 </p> 36 </div> 37 {{if .DisableSSH}} 38 <div class="flex-item"> 39 {{ctx.Locale.Tr "settings.ssh_signonly"}} 40 </div> 41 {{end}} 42 {{range $index, $key := .Keys}} 43 <div class="flex-item"> 44 <div class="flex-item-leading"> 45 <span class="text {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-tooltip-content="{{ctx.Locale.Tr "settings.key_state_desc"}}"{{end}}>{{svg "octicon-key" 32}}</span> 46 </div> 47 <div class="flex-item-main"> 48 {{if .Verified}} 49 <div class="flex-item-title flex-text-block" data-tooltip-content="{{ctx.Locale.Tr "settings.ssh_key_verified_long"}}">{{svg "octicon-verified"}}{{ctx.Locale.Tr "settings.ssh_key_verified"}}</div> 50 {{end}} 51 <div class="flex-item-title">{{.Name}}</div> 52 <div class="flex-item-body"> 53 {{.Fingerprint}} 54 </div> 55 <div class="flex-item-body"> 56 <i>{{ctx.Locale.Tr "settings.added_on" (DateTime "short" .CreatedUnix)}} — {{svg "octicon-info"}} {{if .HasUsed}}{{ctx.Locale.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="text green"{{end}}>{{DateTime "short" .UpdatedUnix}}</span>{{else}}{{ctx.Locale.Tr "settings.no_activity"}}{{end}}</i> 57 </div> 58 </div> 59 <div class="flex-item-trailing"> 60 <button class="ui red tiny button delete-button{{if index $.ExternalKeys $index}} disabled{{end}}" data-modal-id="delete-ssh" data-url="{{$.Link}}/delete?type=ssh" data-id="{{.ID}}"{{if index $.ExternalKeys $index}} title="{{ctx.Locale.Tr "settings.ssh_externally_managed"}}"{{end}}> 61 {{ctx.Locale.Tr "settings.delete_key"}} 62 </button> 63 {{if and (not .Verified) (ne $.VerifyingFingerprint .Fingerprint)}} 64 <a class="ui primary tiny button" href="?verify_ssh={{.Fingerprint}}">{{ctx.Locale.Tr "settings.ssh_key_verify"}}</a> 65 {{end}} 66 </div> 67 </div> 68 {{if and (not .Verified) (eq $.VerifyingFingerprint .Fingerprint)}} 69 <div class="ui segment"> 70 <h4>{{ctx.Locale.Tr "settings.ssh_token_required"}}</h4> 71 <form class="ui form{{if $.HasSSHVerifyError}} error{{end}}" action="{{$.Link}}" method="post"> 72 {{$.CsrfTokenHtml}} 73 <input type="hidden" name="title" value="none"> 74 <input type="hidden" name="content" value="{{.Content}}"> 75 <input type="hidden" name="fingerprint" value="{{.Fingerprint}}"> 76 <div class="field"> 77 <label for="token">{{ctx.Locale.Tr "settings.ssh_token"}}</label> 78 <input readonly="" value="{{$.TokenToSign}}"> 79 <div class="help"> 80 <p>{{ctx.Locale.Tr "settings.ssh_token_help"}}</p> 81 <p><code>{{printf "echo -n '%s' | ssh-keygen -Y sign -n gitea -f /path_to_PrivateKey_or_RelatedPublicKey" $.TokenToSign}}</code></p> 82 </div> 83 <br> 84 </div> 85 <div class="field"> 86 <label for="signature">{{ctx.Locale.Tr "settings.ssh_token_signature"}}</label> 87 <textarea id="ssh-key-signature" name="signature" placeholder="{{ctx.Locale.Tr "settings.key_signature_ssh_placeholder"}}" required>{{$.signature}}</textarea> 88 </div> 89 <input name="type" type="hidden" value="verify_ssh"> 90 <button class="ui primary button"> 91 {{ctx.Locale.Tr "settings.ssh_key_verify"}} 92 </button> 93 <a class="ui red button" href="{{$.Link}}"> 94 {{ctx.Locale.Tr "settings.cancel"}} 95 </a> 96 </form> 97 </div> 98 {{end}} 99 {{end}} 100 </div> 101 <div class="ui g-modal-confirm delete modal" id="delete-ssh"> 102 <div class="header"> 103 {{svg "octicon-trash"}} 104 {{ctx.Locale.Tr "settings.ssh_key_deletion"}} 105 </div> 106 <div class="content"> 107 <p>{{ctx.Locale.Tr "settings.ssh_key_deletion_desc"}}</p> 108 </div> 109 {{template "base/modal_actions_confirm" .}} 110 </div> 111 </div>