{"id":4540,"date":"2025-05-05T07:15:05","date_gmt":"2025-05-04T22:15:05","guid":{"rendered":"https:\/\/matoken.org\/blog\/?p=4540"},"modified":"2025-05-05T07:21:10","modified_gmt":"2025-05-04T22:21:10","slug":"change-codebergs-ssh-authentication-to-ssh-public-key","status":"publish","type":"post","link":"https:\/\/matoken.org\/blog\/2025\/05\/05\/change-codebergs-ssh-authentication-to-ssh-public-key\/","title":{"rendered":"Codeberg\u306essh\u8a8d\u8a3c\u3092\u516c\u958b\u9375\u8a8d\u8a3c\u306b\u5909\u66f4\u3059\u308b"},"content":{"rendered":"<p><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"48\" height=\"48\" viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M11.955.49A12 12 0 0 0 0 12.49a12 12 0 0 0 1.832 6.373L11.838 5.928a.187.14 0 0 1 .324 0l10.006 12.935A12 12 0 0 0 24 12.49a12 12 0 0 0-12-12zm.375 6.467l4.416 16.553a12 12 0 0 0 5.137-4.213z\"\/><\/svg><!-- simple-icons:codeberg --><\/p>\n<div class=\"paragraph\">\n<p>Forgejo+\u03b1\u306a\u611f\u3058\u306eGitHub\u4ee3\u66ff\u306aCodeberg\u306bSSH\u516c\u958b\u9375\u3092\u767b\u9332\u3057\u3066ssh\u516c\u958b\u9375\u8a8d\u8a3c\u3067Git\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<p><!--more--><\/p>\n<div class=\"paragraph\">\n<p>\u516c\u5f0f\u306e\u624b\u9806\u306f\u3053\u3061\u3089\u306b\u3042\u308a\u307e\u3059\uff0e\u5c11\u3057\u6c17\u306b\u306a\u3063\u305f\u306e\u304c\u9375\u751f\u6210\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067rounds\u304c100\u3082\u3042\u308b\u3053\u3068\uff0e\u624b\u5143\u306eOpenSSH 10.0p2\u306essh-keygen\u306eman\u3067\u78ba\u8a8d\u3059\u308b\u3068\u65e2\u5b9a\u5024\u306f16\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u5927\u5206\u637b\u3063\u3066\u3044\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/docs.codeberg.org\/security\/ssh-key\/\">Adding an SSH key to your account | Codeberg Documentation<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\u9375\u30da\u30a2\u3092\u751f\u6210\u3057\u305f\u3089*.pub\u306e\u62e1\u5f35\u5b50\u306e\u4ed8\u3044\u305f\u516c\u958b\u9375*\u3092\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u304b\u3089\u767b\u9332\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><a href=\"https:\/\/codeberg.org\/user\/settings\/keys\" class=\"bare\">https:\/\/codeberg.org\/user\/settings\/keys<\/a><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>~\/.ssh\/config\u306bCodeberg\u306e\u8a2d\u5b9a\u3092\u66f8\u3044\u3066\u304a\u304d\u307e\u3059\uff0eCodeberg\u306fport 443\u3067\u3082ssh\u63a5\u7d9aok\u306a\u306e\u3067\u3053\u3053\u3067\u306f443\u3092\u4f7f\u3046\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\uff0e<br \/>\nUser\u304c\u307f\u3093\u306agit\u3067\u3059\u304c\uff0c\u9375\u306b\u3088\u308a\u30e6\u30fc\u30b6\u3092\u533a\u5225\u3059\u308b\u3088\u3046\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ grep -A 4 Host\\ codeberg.org ~\/.ssh\/config\nHost codeberg.org\n  HostName codeberg.org\n  User git\n  IdentityFile ~\/.ssh\/id_ed25519\n  Port 443<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u63a5\u7d9a\u30c6\u30b9\u30c8\u3092\u3057\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u521d\u56de\u63a5\u7d9a\u6642\u306b\u306f\u30db\u30b9\u30c8\u9375\u306e\u78ba\u8a8d\u304c\u5fc5\u8981\u3067\u3059\uff0eCodeberg\u306e\u30db\u30b9\u30c8\u9375\u306e\u9375\u6307\u7d0b\u306f\u4ee5\u4e0b\u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059\uff0e\u78ba\u8a8d\u3057\u3066\u5165\u529b\u3057\u307e\u3057\u3087\u3046\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/docs.codeberg.org\/security\/ssh-fingerprint\/\">Verifying you&#8217;re connected to Codeberg using SSH fingerprints | Codeberg Documentation<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ ssh -T git@codeberg.org\nThe authenticity of host 'codeberg.org (2a0a:4580:103f:c0de::1)' can't be established.\nED25519 key fingerprint is SHA256:mIlxA9k46MmM6qdJOdMnAQpzGxF4WIVVL+fj+wZbw0g.\n+--[ED25519 256]--+\n| ++*+=.          |\n|o +.+...         |\n|oBo...+ o        |\n|+o*o + OE        |\n|o ... +.So       |\n|. o .  .o.+      |\n|.= o .  .+ .     |\n|..+.o   ...      |\n| oo     .o.      |\n+----[SHA256]-----+\nThis key is not known by any other names.\nAre you sure you want to continue connecting (yes\/no\/[fingerprint])? SHA256:mIlxA9k46MmM6qdJOdMnAQpzGxF4WIVVL+fj+wZbw0g\nWarning: Permanently added 'codeberg.org' (ED25519) to the list of known hosts.\nConnection closed by 2a0a:4580:103f:c0de::1 port 22<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u63a5\u7d9a\u304c\u3046\u307e\u304f\u884c\u3051\u3070\u81ea\u5206\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u540d\u3084\uff0c\u9375\u306e\u30b3\u30e1\u30f3\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ ssh -T git@codeberg.org\nHost key fingerprint is SHA256:mIlxA9k46MmM6qdJOdMnAQpzGxF4WIVVL+fj+wZbw0g\n+--[ED25519 256]--+\n| ++*+=.          |\n|o +.+...         |\n|oBo...+ o        |\n|+o*o + OE        |\n|o ... +.So       |\n|. o .  .o.+      |\n|.= o .  .+ .     |\n|..+.o   ...      |\n| oo     .o.      |\n+----[SHA256]-----+\nEnter passphrase for key '\/home\/matoken\/.ssh\/id_ed25519':\nAuthenticated to codeberg.org ([2a0a:4580:103f:c0de::1]:22) using \"publickey\".\nHi there, matoken! You've successfully authenticated with the key named matoken@l13, but Forgejo does not provide shell access.\nIf this is unexpected, please log in with password and setup Forgejo under another user.<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u3053\u3067\u306fmatoken@l13\u3068\u3044\u3046\u9375\u3092\u4f7f\u3044\uff0cmatoken\u3068\u3044\u3046\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30ed\u30b0\u30a4\u30f3\u306b\u6210\u529f\u3057\u3066\u3044\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"admonitionblock note\">\n<table  class=\" table table-hover\" >\n<tr>\n<td class=\"icon\">\n<div class=\"title\">Note<\/div>\n<\/td>\n<td class=\"content\">\nCodeberg\u306fport 443\u3067\u3082ssh\u63a5\u7d9aok\u306a\u306e\u3067\u3059\u304c\uff0c\u3053\u3053\u306e\u30c6\u30b9\u30c8\u306f443\u3092\u4f7f\u3046\u3068\u5931\u6557\u3059\u308b\u3088\u3046\u3067\u3059\uff0e\n<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u72b6\u614b\u3067\u30d1\u30b9\u30ef\u30fc\u30c9\u8a8d\u8a3c\u3092\u8a66\u307f\u308b\u3068\u5931\u6557\u3057\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ ssh -T matoken@codeberg.org -o PasswordAuthentication=yes\nHost key fingerprint is SHA256:mIlxA9k46MmM6qdJOdMnAQpzGxF4WIVVL+fj+wZbw0g\n+--[ED25519 256]--+\n| ++*+=.          |\n|o +.+...         |\n|oBo...+ o        |\n|+o*o + OE        |\n|o ... +.So       |\n|. o .  .o.+      |\n|.= o .  .+ .     |\n|..+.o   ...      |\n| oo     .o.      |\n+----[SHA256]-----+\nmatoken@codeberg.org: Permission denied (publickey).<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>TOTP\u306e\u8a2d\u5b9a\u3092\u6709\u52b9\u306b\u3057\u3066\u3053\u306eSSH\u516c\u958b\u9375\u8a8d\u8a3c\u3092\u4f7f\u3046\u3088\u3046\u306b\u3059\u308b\u3068\u305d\u3053\u305d\u3053\u5b89\u5fc3\u306a\u611f\u3058\u3067\u3059\uff0e<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Forgejo+\u03b1\u306a\u611f\u3058\u306eGitHub\u4ee3\u66ff\u306aCodeberg\u306bSSH\u516c\u958b\u9375\u3092\u767b\u9332\u3057\u3066ssh\u516c\u958b\u9375\u8a8d\u8a3c\u3067Git\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3057\u305f\uff0e<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":null,"activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":""},"categories":[7,6],"tags":[1203,341],"class_list":["post-4540","post","type-post","status-publish","format-standard","hentry","category-debian-linux","category-linux","tag-codeberg","tag-ssh"],"_links":{"self":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/4540","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/comments?post=4540"}],"version-history":[{"count":5,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/4540\/revisions"}],"predecessor-version":[{"id":4556,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/4540\/revisions\/4556"}],"wp:attachment":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/media?parent=4540"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/categories?post=4540"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/tags?post=4540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}