{"id":1470,"date":"2025-09-09T23:24:54","date_gmt":"2025-09-09T23:24:54","guid":{"rendered":"https:\/\/davidka.net\/ru\/?p=1470"},"modified":"2025-09-13T20:43:22","modified_gmt":"2025-09-13T20:43:22","slug":"github-personal-access-token-pat","status":"publish","type":"post","link":"https:\/\/de.davidka.net\/de\/2025\/09\/09\/github-personal-access-token-pat\/","title":{"rendered":""},"content":{"rendered":"\n<p class=\"has-neve-link-color-color has-text-color has-link-color has-medium-font-size wp-elements-c19c674b8846a0ddf115369a55a108e7 wp-block-paragraph\">GitHub Personal Access Token (PAT) \u2014 sichere Authentifizierung auf GitHub.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein GitHub Personal Access Token (PAT), also ein \u201epers\u00f6nlicher Zugriffstoken\u201c, ist eine moderne Methode zur sicheren Authentifizierung auf der GitHub-Plattform.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Seit August 2021 unterst\u00fctzt GitHub keine Passwortnutzung mehr f\u00fcr Git-Operationen \u00fcber HTTPS. Das bedeutet, dass jede Aktion, die zuvor ein Passwort erforderte, jetzt ein Token ben\u00f6tigt. PAT erm\u00f6glicht:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sicheren Zugriff auf Repositories;<\/li>\n\n\n\n<li>Arbeit mit der GitHub API;<\/li>\n\n\n\n<li>Automatisierung von Prozessen in Skripten, CI\/CD und anderen Tools, ohne das Konto zu gef\u00e4hrden.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Kurz gesagt: Ein PAT ist ein \u201eSchl\u00fcssel\u201c, der begrenzten Zugriff gew\u00e4hrt, leicht widerrufen werden kann und ein Ablaufdatum haben kann.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Warum ein PAT verwenden<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der Hauptzweck eines PAT ist es, die Arbeit auf GitHub zu sichern und gleichzeitig komfortabel zu bleiben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Hauptfunktionen:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Sicherheit<\/strong><br>Ein Passwort gew\u00e4hrt vollen Zugriff auf das Konto. Bei einem Leak sind alle Daten gef\u00e4hrdet. Ein Token kann nach Berechtigungen und Dauer eingeschr\u00e4nkt werden.<\/li>\n\n\n\n<li><strong>Automatisierung<\/strong><br>Skripte, CI\/CD, Bots und andere Tools k\u00f6nnen ein PAT anstelle der manuellen Eingabe von Benutzername und Passwort verwenden.<\/li>\n\n\n\n<li><strong>Zugangskontrolle<\/strong><br>Es k\u00f6nnen mehrere Tokens mit unterschiedlichen Berechtigungen f\u00fcr verschiedene Aufgaben erstellt werden. Wenn ein Token kompromittiert wird, kann es widerrufen werden, ohne andere zu beeinflussen.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Token-Typen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub bietet zwei Token-Typen:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Classic (klassisch)<\/strong>\n<ul class=\"wp-block-list\">\n<li>Zugriff wird \u00fcber <em>Scopes<\/em> definiert (z.\u202fB. <code class=\"\" data-line=\"\">repo<\/code>, <code class=\"\" data-line=\"\">workflow<\/code>).<\/li>\n\n\n\n<li>Gew\u00e4hrt Rechte f\u00fcr alle Repositories des Benutzers.<\/li>\n\n\n\n<li>Einfach zu verwenden, aber weniger flexibel.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Fine-grained (fein abgestuft)<\/strong>\n<ul class=\"wp-block-list\">\n<li>Erm\u00f6glicht die Beschr\u00e4nkung des Zugriffs auf bestimmte Repositories.<\/li>\n\n\n\n<li>Pr\u00e4zise Berechtigungen k\u00f6nnen zugewiesen werden, z.\u202fB. \u201enur Lesezugriff auf Issues\u201c.<\/li>\n\n\n\n<li>Organisationen k\u00f6nnen eine Genehmigung f\u00fcr solche Tokens verlangen.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udca1 Tipp: Verwenden Sie fine-grained Tokens, wenn Sicherheit und Zugriffsbeschr\u00e4nkung wichtig sind; Classic f\u00fcr Kompatibilit\u00e4t mit \u00e4lteren Tools.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Erstellung eines PAT<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 1: Zu den Einstellungen gehen<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>GitHub \u00f6ffnen \u2192 <strong>Settings<\/strong> \u2192 <strong>Developer settings<\/strong> \u2192 <strong>Personal access tokens<\/strong> \u2192 <strong>Tokens (classic)<\/strong>.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 2: Neues Token erstellen<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Auf <strong>Generate new token (classic)<\/strong> klicken.<\/li>\n\n\n\n<li>Einen Namen vergeben (Note), z.\u202fB. <code class=\"\" data-line=\"\">CI-token<\/code> oder <code class=\"\" data-line=\"\">Git-PC<\/code>.<\/li>\n\n\n\n<li>Ablaufdatum festlegen \u2014 empfohlen 90 Tage oder 1 Jahr.<\/li>\n\n\n\n<li>Ben\u00f6tigte Berechtigungen ausw\u00e4hlen (Scopes) \u2014 Mindestrechte f\u00fcr Git: <code class=\"\" data-line=\"\">repo<\/code>, f\u00fcr Actions: <code class=\"\" data-line=\"\">workflow<\/code>.<\/li>\n\n\n\n<li>Token generieren und <strong>sofort speichern<\/strong> \u2014 es wird nur einmal angezeigt.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Verwendung eines PAT<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Git \u00fcber HTTPS<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">git clone https:\/\/github.com\/username\/repo.git\n# Benutzername: Ihr GitHub-Benutzername\n# Passwort: generiertes Token\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Um das Token nicht jedes Mal einzugeben, kann es zwischengespeichert werden:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">git config --global credential.helper manager   # Windows\/Mac\ngit config --global credential.helper &#039;cache --timeout=3600&#039;  # Linux\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2. Arbeit mit der GitHub API<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">$token = Get-Secret -Name GitHubToken  # sicheres Abrufen des Tokens\n$headers = @{ Authorization = &quot;token $token&quot; }\n\n$repos = Invoke-RestMethod -Uri &quot;https:\/\/api.github.com\/user\/repos&quot; -Headers $headers\n$repos | ForEach-Object { $_.name }\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Erstellen eines Issues:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">$body = @{\n    title = &quot;Neues Test-Task&quot;\n    body  = &quot;Beschreibung der Aufgabe&quot;\n} | ConvertTo-Json\n\nInvoke-RestMethod -Uri &quot;https:\/\/api.github.com\/repos\/username\/repo\/issues&quot; `\n                  -Method Post `\n                  -Headers $headers `\n                  -Body $body\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3. CI\/CD und Skripte<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">$token = Get-Secret -Name GitHubToken\ngit config --global user.name &quot;CI Bot&quot;\ngit config --global user.email &quot;ci@example.com&quot;\n\ngit add .\ngit commit -m &quot;Automatisches Update&quot;\ngit push &quot;https:\/\/$token@github.com\/username\/repo.git&quot; main\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udca1 Tipp: Verwenden Sie ein separates Token mit minimalen Berechtigungen f\u00fcr CI\/CD.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">4. IDE und lokale Entwicklung<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In Visual Studio Code und anderen IDEs kann das PAT anstelle des Passworts verwendet werden, um mit privaten Repositories und Pull Requests zu arbeiten.<\/li>\n\n\n\n<li>F\u00fcr verschiedene Maschinen oder IDEs separate Tokens erstellen, um die Auswirkungen eines m\u00f6glichen Lecks zu begrenzen.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">5. Verwaltung und Sicherheit<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tokens in Passwortmanagern oder SecretStore speichern.<\/li>\n\n\n\n<li>Separate Tokens f\u00fcr unterschiedliche Aufgaben erstellen.<\/li>\n\n\n\n<li>Unbenutzte Tokens regelm\u00e4\u00dfig \u00fcberpr\u00fcfen und l\u00f6schen.<\/li>\n\n\n\n<li>Immer ein Ablaufdatum festlegen (nicht \u201eNo expiration\u201c verwenden).<\/li>\n\n\n\n<li>Rotation der Tokens f\u00fcr CI\/CD und automatisierte Skripte planen.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">6. Alternative: GitHub CLI<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">gh auth login\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die CLI \u00f6ffnet den Browser, f\u00fchrt die Authentifizierung durch, erstellt und speichert das Token lokal. Dies verhindert manuelle PAT-Erstellung und vereinfacht das Schl\u00fcsselmanagement.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>GitHub Personal Access Token (PAT) \u2014 sichere Authentifizierung auf GitHub<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"default","neve_meta_container":"full-width","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"on","neve_post_elements_order":"[\"content\",\"tags\",\"comments\"]","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-1470","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/posts\/1470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/comments?post=1470"}],"version-history":[{"count":0,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/posts\/1470\/revisions"}],"wp:attachment":[{"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/media?parent=1470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/categories?post=1470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/de.davidka.net\/de\/wp-json\/wp\/v2\/tags?post=1470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}