178 lines
4.6 KiB
HTML
178 lines
4.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-us"><head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
|
<title>MissKey: Resetting Admin Password - phil@bajsicki:~$</title>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
|
<meta name="description"
|
|
content="So recently I had the need to reset the admin password in MissKey.
|
|
Alas, there was no recovery email configured, nor other users on the instance, so I needed to do some digging in the database. ">
|
|
<link rel="canonical" href="http://localhost:1313/posts/misskey-resetting-admin-password/" />
|
|
|
|
|
|
<link rel="icon" href="http://localhost:1313/images/logo_w.png" />
|
|
|
|
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/modern-normalize/1.1.0/modern-normalize.min.css" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
<link rel="preload" as="style"
|
|
href="https://fonts.googleapis.com/css?family=Noto+Serif+SC|Noto+Emoji&display=swap" />
|
|
<link rel="stylesheet"
|
|
href="https://fonts.googleapis.com/css?family=Noto+Serif+SC|Noto+Emoji&display=swap"
|
|
media="print" onload="this.media='all'" />
|
|
<noscript>
|
|
<link rel="stylesheet"
|
|
href="https://fonts.googleapis.com/css?family=Noto+Serif+SC&display=swap" />
|
|
</noscript>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/css/hugo-tufte.min.css">
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/css/hugo-tufte-options.min.css">
|
|
|
|
<link rel="stylesheet" href="/css/hugo-tufte-override.css">
|
|
|
|
</head>
|
|
<body>
|
|
|
|
|
|
<article id="main">
|
|
<header class="brand">
|
|
<h1>phil@bajsicki:~$</h1>
|
|
<p class="subtitle"></p>
|
|
<nav class="menu">
|
|
<ul>
|
|
|
|
<li><a href="/">Home</a></li>
|
|
|
|
<li><a href="/about/">About</a></li>
|
|
|
|
<li><a href="/posts/">Posts</a></li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
<hr />
|
|
</header>
|
|
|
|
<section>
|
|
<h1 class="content-title">MissKey: Resetting Admin Password</h1><span class="content-meta"><p class="author">[Phil Bajsicki]</p><p class="date">2023-08-11</p><span>1 min read </span><a href="http://localhost:1313/tags/misskey">misskey</a> <a href="http://localhost:1313/tags/admin">admin</a> <a href="http://localhost:1313/tags/postgres">postgres</a> </span></section>
|
|
|
|
|
|
|
|
<section><p>So recently I had the need to reset the admin password in <a href="https://github.com/misskey-dev/misskey/">MissKey</a>.</p>
|
|
<p>Alas, there was no recovery email configured, nor other users on the instance, so I needed to do some digging in the database.</p>
|
|
<p>So here is the short of it.</p>
|
|
<ol>
|
|
<li>Log in with your misskey user into postgres (assuming that’s what you’re running MissKey on).</li>
|
|
<li>Connect to the database.</li>
|
|
<li><code>select * from "user" where "isAdmin" = true;</code></li>
|
|
<li>Grab the <code>userId</code> for the user you’re resetting the password for.</li>
|
|
<li><code>select * from user_profile where "userId" = 'your-userId';</code> to confirm that you’re getting the right info.</li>
|
|
<li>Get the hashed password with <code>bcrypt</code>, such as:
|
|
<code>python -c 'import bcrypt; print(bcrypt.hashpw("new-password", bcrypt.gensalt(log_rounds=10)))'</code></li>
|
|
<li><code>UPDATE user_profile SET password = 'hashed-password' WHERE "userId" = 'your-userId';</code></li>
|
|
</ol>
|
|
<p>Notes:</p>
|
|
<ul>
|
|
<li>Step 6 requires that you have python-bcrypt installed, and uses that library to do its thing.</li>
|
|
<li>There is a difference between single quotes, double quotes, and lowercase/ capitals. This is a quirk of psql, so make sure you get those right.</li>
|
|
</ul>
|
|
<p>And… done.</p>
|
|
<p><!-- raw HTML omitted --><a href="https://my.fsf.org/join">Join the FSF.</a><!-- raw HTML omitted --></p></section>
|
|
<section><footer class="page-footer">
|
|
<hr />
|
|
|
|
<div class="previous-post" style="display:inline-block;">
|
|
|
|
<a class="link-reverse" href="http://localhost:1313/posts/my-favorite-factorio-mods/?ref=footer">« My favorite Factorio mods</a>
|
|
|
|
</div>
|
|
|
|
<div class="next-post", style="display:inline-block;float:right;">
|
|
|
|
<a class="link-reverse" href="http://localhost:1313/posts/a-new-look/?ref=footer">A new look: ox-tufte »</a>
|
|
|
|
</div>
|
|
|
|
<ul class="page-footer-menu">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<div class="copyright">
|
|
<p>
|
|
|
|
©2024 Phil Bajsicki
|
|
|
|
</p>
|
|
</div>
|
|
|
|
|
|
</footer>
|
|
</section>
|
|
<section><nav class="menu">
|
|
<ul>
|
|
|
|
<li><a href="/">Home</a></li>
|
|
|
|
<li><a href="/about/">About</a></li>
|
|
|
|
<li><a href="/posts/">Posts</a></li>
|
|
|
|
</ul>
|
|
</nav>
|
|
</section>
|
|
</article>
|
|
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|