Github oauth token linux

Создание токена персонального доступа для командной строки

Вы можете создать токен доступа и использовать его вместо пароля при выполнении операций Git через HTTPS с Git в командной строке или API.

Для аутентификации в GitHub требуется токен персонального доступа в следующих ситуациях:

  • Когда вы используете двухфакторную аутентификацию
  • Для доступа к защищенному контенту в организации, использующей единый вход SAML (SSO). Токены, используемые с организациями, использующими SAML SSO, должны быть авторизованы.

Создание токена

1) Проверьте свой адрес электронной почты , если он еще не подтвержден.
2)В правом верхнем углу любой страницы щелкните фотографию своего профиля и нажмите «Settings» .

3) В левой боковой панели нажмите «Developer settings»

4) В левой боковой панели нажмите «Personal access tokens» и затем чтобы создать новый токен нажмите «Generate new token»

5) Задайте маркеру описание и выберите область действия или разрешения, которые нужно предоставить этому токену. Чтобы использовать маркер для доступа к репозиториям из командной строки, выберите repo.

6) Нажмите «Generate token», чтобы создать токен.

7) Скопируйте полученный токен в буфер обмена для следующего использования.

Использование токена в командной строке

Теперь, с помощью токена, вы можете ввести его вместо пароля при выполнении операций Git через HTTPS.

Например, в командной строке вы должны ввести следующее:

Источник

Create a Github Personal Access Token and SSH for Your Github Repository

Github Personal Access Token and SSH

Basic authentication is the use of username and password for authentication. For sometime Github will accept Basic authentication, the use of username and password , to access repositories on Github — to clone, push and pull. The Basic authentication will be deprecated very soon this year, 2021.

Github also allows:

  • Username and password with two-factor authentication
  • Personal access token (PAT)
  • SSH key

Create the PAT

The PAT can only be used over HTTPS Git operations

  • On Github, signup if you don’t have an account or login if you already do have one
  • At the top right corner, click on your avatar and click on Settings from the drop-down
  • On the left side of your Setting Profile page, click on Developer settings
  • Click on Personal access token on the next page
  • At the right, click on Generate token
  • Give the token a name or description and check some privileges you want to give to the token
  • Click Generate token , a green button at the bottom of the page
  • Copy the token and save it somewhere safely (It will still be there when you check it)
  • If the token is forgotten or you could not save it, regenerate it.
Читайте также:  Как очистить последние действия windows 10

Add token to git

vscode is my go-to text editor for my all-round development. Entering the username and token every time is a nuisance. We would add the token globally to git. For a specific application, we can add the token locally. The token would be used as the password.

Reminder
If this was your first time actually using git then you have to set your email and username . git config —global user.email «your@example.com» and git config —global user.name «Your Name» .

  • git config —global credential.helper store
  • Now clone, push or pull with username and copied token instead of the password
  • For the sake of testing, let’s create a dummy repo on Github. Choose the default settings. (Do not close the page or the browser)
  • I am on ubuntu so I will install ssh on ubuntu.
  • Update and install openssh-server : sudo apt update then sudo apt install openssh-server
  • sudo systemctl status ssh to check the ssh status then hit q to get back to the terminal
  • sudo ufw allow ssh , will open the ssh port. This enables us to connect to our Ubuntu system via SSH from any remote machine.
  • sudo systemctl disable —now ssh to disable ssh and sudo systemctl enable —now ssh to enable ssh
  • Generate ssh key, ssh-keygen -t ed25519 -C «your_email@example.com» .
  • Hit enter to use the default settings for the file name/path to save your key
  • Enter and hit enter for the passphrase and reenter the passphrase and hit enter again
  • Start the ssh-agent in the background to add add key to ssh-client : eval «$(ssh-agent -s)»
  • ssh-add

/.ssh/id_ed25519 then enter the passphrase used initially to add key to client

  • We can now add the ssh public key to Github. We can cat the public key then copy it or open the public key in a text editor and then copy it.
  • gedit

    /.ssh/id_ed25519.pub will open the public key in gedit. Copy it.

  • On Github just as we did for the toke, go to the top right corner of the page and click on the avatar
  • Click on Settings on the drop-down
  • Click on SSH and GPG keys
  • Click New SSH key or Add SSH key .
  • add a title and then paste the public key from the text editor into the key field
  • Then click on add SSH Key and we are done adding ssh key to Github
  • The dummy repo we created earlier would have a URL, https://github.com/username/dummyrepo.git if we were to use HTTPS but for the SSH, git@github.com:username/dummyrepo.git
  • Let’s clone the project from Github using SSH, git clone git@github.com:username/dummyrepo.git
  • cd dummyrepo and then echo «# dummyrepo» >> README.md
  • git add README.md and git commit -m «README.md» to add and commit the README.md
  • git push origin main to push the committed code.
  • Switch from HTTPS to SSH URL

    Say you have the repo already using HTTPS then you have to change the URL on your local server.

    • HTTPS url: https://github.com/username/dummyrepo.git
    • SSH url: git@github.com:username/dummyrepo.git

    check the git url, git remote -v which will display

    • origin https://github.com/username/dummyrepo.git (fetch)
    • origin https://github.com/username/dummyrepo.git (push)

    to change from HTTPS to SSH, git remote set-url it@github.com:username/dummyrepo.git

    check the git url verify the changes, git remote -v

    Источник

    Аутентификация в Kubernetes с помощью GitHub OAuth и Dex

    Представляю вашему вниманию туториал для генерации доступов к Kubernetes-кластеру с помощью Dex, dex-k8s-authenticator и GitHub.

    Введение

    Мы используем Kubernetes для создания динамических окружений для команды разработчиков и QA. Таким образом, мы хотим предоставить им доступ к кластеру как для дашборда, так и для kubectl. В отличие от того же OpenShift, ванильный Kubernetes не имеет нативной аутентификации, поэтому мы используем для этого сторонние средства.

    В данной конфигурации мы используем:

    • dex-k8s-authenticator — веб-приложение для генерации конфига kubectl
    • Dex — провайдер OpenID Connect
    • GitHub — просто потому-что мы используем GitHub в нашей компании

    Мы пытались использовать Google OIDC, но к сожалению нам не удалось завести их с группами, поэтому интеграция с GitHub нас вполне устроила. Без маппинга групп не удасться создать RBAC-политики основанные на группах.

    Итак, как же работает наш процесс авторизации в Kubernetes в визуальном представлении:


    Процесс авторизации

    Немного подробнее и по пунктам:

    1. Пользователь входит в dex-k8s-authenticator ( login.k8s.example.com )
    2. dex-k8s-authenticator перенаправляет запрос в Dex ( dex.k8s.example.com )
    3. Dex перенаправляет на страницу авторизации в GitHub
    4. GitHub генерирует необходимую информацию об авторизации и возвращает ее в Dex
    5. Dex передает полученную информацию в dex-k8s-authenticator
    6. Пользователь получает OIDC token от GitHub
    7. dex-k8s-authenticator добавляет токен в kubeconfig
    8. kubectl передает токен в KubeAPIServer
    9. KubeAPIServer на основе переданного токена возвращает доступы в kubectl
    10. Пользователь получает доступы от kubectl

    Подготовительные действия

    Само собой у нас уже установлен Kubernetes-кластер ( k8s.example.com ), а также предустановлен HELM. Также у нас есть организация в GitHub (super-org).
    Если у вас нет HELM, устанавливается он очень просто.

    Сначала нам необходимо настроить GitHub.

    Переходим на страницу настроек организации, ( https://github.com/organizations/super-org/settings/applications ) и создаем новое приложение (Authorized OAuth App):

    Создание нового приложения в GitHub

    Заполняем поля необходимыми URL, например:

    • Homepage URL: https://dex.k8s.example.com
    • Authorization callback URL: https://dex.k8s.example.com/callback

    Будьте внимательны с ссылками, важно не потерять слеши.

    В ответ на заполненную форму, GitHub сгенерирует Client ID и Client secret , сохраните их в надежном месте, они нам пригодятся (мы например используем Vault для хранения секретов):

    Подготовьте DNS-записи для субдоменов login.k8s.example.com и dex.k8s.example.com , а также SSL-сертификаты для ингрессов.

    ClusterIssuer с названием le-clusterissuer уже должен существовать, если же нет — создадим его с помощью HELM:

    Конфигурация KubeAPIServer

    Для работы kubeAPIServer необходимо сконфигурировать OIDC и обновить кластер:

    Мы используем kops для разворачивания кластеров, но это аналогично работает и для других менеджеров кластеров.

    Конфигурация Dex и dex-k8s-authenticator

    Для работы Dex необходимо иметь сертификат и ключ с Kubernetes-мастера, вытащим его оттуда:

    Склонируем репозиторий dex-k8s-authenticator:

    С помощью values-файлов мы можем гибко настраивать переменные для наших HELM-чартов.

    Опишем конфигурацию для Dex:

    И для dex-k8s-authenticator:

    Установим Dex и dex-k8s-authenticator:

    Проверим работоспособность сервисов (Dex должен вернуть код 400, а dex-k8s-authenticator — код 200):

    RBAC-конфигурация

    Создаем ClusterRole для группы, в нашем случае с read-only доступами:

    Создадим конфигурацию для ClusterRoleBinding:

    Теперь мы готовы к тестированию.

    Тесты

    Переходим на страницу логина ( https://login.k8s.example.com ) и авторизуемся с помощью GitHub-аккаунта:


    Страница авторизации


    Страница авторизации перенаправленная на GitHub


    Следуем сгенерированной инструкции для получения доступов

    После копипасты с веб-страницы мы можем использовать kubectl для управления ресурсами нашего кластера:

    И это работает, все пользователи GitHub в нашей организации могут видеть ресурсы и входить в поды, однако они не имеют прав на их изменение.

    Источник

    Аутентификация с GitHub с помощью токена

    Я пытаюсь пройти аутентификацию в GitHub, используя токен личного доступа. В файлах справки на github говорится об использовании метода cURL для аутентификации ( https://help.github.com/articles/creating-an-access-token-for-command-line-use ). Я пробовал это, но все еще не могу нажать на GitHub. Обратите внимание, я пытаюсь выполнить отправку с неаутентифицированного сервера (Travis-CI).

    Этот код вызывает ошибки:

    удаленный: анонимный доступ к scuzzlebuzzle / ol3-1.git запрещен.

    Ваша curl команда совершенно неверна. Вы должны использовать следующие

    Кроме того, это не разрешает вашему компьютеру клонировать репозиторий, если он на самом деле является частным. (Однако взгляд показывает, что это не так.) Обычно вы делаете следующее:

    Это добавит ваши учетные данные на пульт, созданный при клонировании репозитория. Однако, к сожалению, вы не можете контролировать, как Трэвис клонирует ваш репозиторий, поэтому вам нужно отредактировать пульт таким образом.

    Это исправит ваш проект для использования пульта дистанционного управления со встроенными учетными данными.

    Предупреждение: токены имеют доступ для чтения / записи и должны рассматриваться как пароли. Если вы вводите свой токен в URL-адрес клона при клонировании или добавлении пульта, Git writes it to your .git/config file in plain text, which is a security risk.

    Как ни смешно, в статье рассказывается, как его создать, но совершенно не говорится, что с ним делать. Примерно через час изучения документации и Stack Overflow я наконец нашел ответ:

    Я был фактически вынужден включить двухфакторную аутентификацию политикой компании, когда я работал удаленно и все еще вносил локальные изменения, так что на самом деле это было не clone мне нужно, но push . Я читал во многих местах, что мне нужно было удалить и воссоздать пульт, но на самом деле моя обычная push команда работала точно так же, как указано clone выше, и пульт не изменился:

    (@YMHuang направил меня на правильный путь с помощью ссылки на документацию.)

    Чтобы не передать «ключи от замка» .

    Обратите внимание, что ответ sigmavirus24 требует, чтобы вы предоставили Трэвису токен с довольно широкими разрешениями — поскольку GitHub предлагает только токены с широкими областями действия, такими как «напишите все мои публичные репозитории» или «напишите все мои частные репозитории».

    Если вы хотите ограничить доступ (с немного большей работой!), Вы можете использовать ключи развертывания GitHub в сочетании с зашифрованными полями yaml Travis.

    Вот набросок того, как работает эта техника .

    Сначала сгенерируйте вызванный ключ развертывания RSA (через ssh-keygen ) my_key и добавьте его в качестве ключа развертывания в настройки репозитория github.

    Затем используйте $password файл для расшифровки ключа развертывания во время интеграции, добавив в файл yaml:

    Примечание: последняя строка предварительно заполняет ключ RSA github, что позволяет избежать необходимости принимать вручную во время подключения.

    Источник

    Читайте также:  Как написать исполняемый файл для windows
    Оцените статью