Personal Access Token in Github not working - macos

I have a private repository on my personal Github account that I work on from time to time, but not on a daily basis.
The repository has been cloned using HTTPS (not SSH or git://).
In order to access the repository from the command line, I set up a personal access token as explained here: https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/
I am positive it did work back then (I moved away from SSH precisely because this kind of persistent headache).
However, when I try to push to my repository after a few weeks I get the dreaded:
$ remote: Repository not found. fatal: repository
$ 'https://github.com/nicolas-miari/MyPrivateRepo.git/' not found
What am I missing?
Addendum: I deleted the token on Github, created a new one, and followed the instructions here: https://help.github.com/articles/updating-credentials-from-the-osx-keychain/ to clear the old token stored in the keychain. I was able to re-clone my private repository. However,
This still doesn't explain why the previous access token suddenly stopped working, and
My keychain had two "Internet password" entries matching the host github.com: The access token I just deleted, and the my web login password for a different Github account (work). Maybe this has something to do with it?
Background info: To avoid having to log in/out frequently, I have my work account's web credentials saved in Safari (and the Keychain), and my personal account's web credentials saved in Firefox.
Addendum 2: After running the command given on the linked help page:
$ git credential-osxkeychain erase
host=github.com
protocol=https
[enter]
...the additional password is gone from the Keychain (only my newly added Personal Token remains), however I can still log in to my account on Safari...?
Update: Now I can't push to repos from my work account (which credentials I deleted from Keychain...). This system really needs a healthy dose of Just Works...

I have a private repository that I have a dependency on, using https://github.com... in my package.json. I have ssh set up on my computer, also I have personal access token. Even though I provide my personal access token as the password it fails. So I changed my git config url using the following and it worked like a charm.
git config --global url."git#github.com:".insteadOf "https://github.com/"
You can double check your ~/.gitconfig to see something like this:
[url "git#github.com:"]
insteadOf = https://github.com/

I tried all the suggestions I could find and the only thing that worked for me was deleting Git on my computer. Once I downloading it again it asked me to to login with browser, which I did and then it worked

Don't forget that Safari has access to iCloud Keychain
That could explain why, even though you have cleared your local OSX keychain, you still can log on to GitHub with Safari.

My colleague was facing the same issue on Linux, and we just logged out from the browser and logged back in, and git commands from the terminal started working with PAT, don't know the relation of terminal command with browser authentication but it worked.

Best guess is that the token expired.
At the time of writing, you can set the token expiration period. If you attempt to select "No expiration", the GitHub UI gives the explicit warning:
GitHub strongly recommends that you set an expiration date for your token to help keep your information secure.
When you inspect existing Personal Access Tokens, you can see an indication of when it was last used and when it's due to expire.
Not sure about when this question was asked 5 years ago but, I assume, as this type of auth was optional back in the day the UI was probably less helpful. The OP mentioned using the repo occasionally and if you set up a token for the first time with expiry of 30 or 60 days, it's easy to have forgotten that a couple of months later.

Related

Heroku git bash won't open browser for login

When I try to log in on git bash it says "heroku: Press any key to open up the browser to login or q to exit:". I am pressing it, but it's stuck here. It wont open browser for login.
Looks like there is an incident with heroku login! Facing the same issue. Cannot login via the dashboard too.
Have you reset your password yet? They just force reset all passwords that hadn't been updated since a recent breech occurred. I was unable to login this morning and found all my sessions had expired. Once I did the password reset I was able to login again as normal.
Details
Salesforce-owned subsidiary Heroku on Thursday acknowledged that the
theft of GitHub integration OAuth tokens further involved unauthorized
access to an internal customer database.
The company, in an updated notification, revealed that a compromised
token was abused to breach the database and "exfiltrate the hashed and
salted passwords for customers' user accounts."
As a consequence, Salesforce said it's resetting all Heroku user
passwords and ensuring that potentially affected credentials are
refreshed. It also emphasized that internal Heroku credentials were
rotated and extra detections have been put in place.
Official: https://status.heroku.com/incidents/2413
Press: https://thehackernews.com/2022/05/heroku-forces-user-password-resets.html

Force password entry before each GitHub push in VS Code on macOS

How can I force VS Code to ask for my macOS Keychain password before each push to GitHub?
VS Code never asked for my GitHub password (via Keychain) until I pushed to GitHub and it asked before each push again.
This was working until a few hours ago when I had some issues and revoked my access and VS Code requested a new token.
Now VS Code does not ask at all for a password. Even when I remove VS Code from the Keychain whitelist, it asks for my password at program start only once and then not again, even not for pushes.
I want VS Code to request my GitHub token before each push from Keychain again.
After comparing my current macOS login Keychain with one from a Backup where everything was still working as I wanted, I found a solution:
There seem to be at least two ways of how VS Code accesses the Keychain:
Directly via OAuth. This is used when VS Code automatically requests an access token via the GitHub website. It stores the token in the Keychain with the name vscodevscode.github-authentication.
Indirectly via git-credential-osxkeychain and a personal access token that is stored in the Keychain with the name github.com.
VS Code seems to decide automatically which way it uses depending on which keys it finds in the macOS Keychain.
I have not found a way how to force VS Code to ask for the Keychain password on each push when using OAuth, but it is working via git-credential-osxkeychain now.
Solution
Request a personal access token via GitHub / Settings / Developer settings / Personal access tokens
Retreive your GitHub ID via: https://api.github.com/users/<your user name>
Open Keychain Access and create a new password item:
Keychain Item Name: https://github.com
Account Name: <your GitHub ID>
Password: <your personal access token>
Notes:
If VS Code asks for your Keychain password multiple times, try a push via command line
click on Always Allow on the request that asks to ...access key "github.com"...
click on Allow on the request that asks to ...use your confidential information stored in "github.com".
This is a complete "try and error" solution, I have not found much information about that. It would be great if someone could explain what is actually going on here. I have also not found any official information about setting up VS Code via git-credential-osxkeychain.
I guess git needs to be installed to make that work. I installed it via Homebrew
At least for me this solution works for pushing via VS Code GUI, VS Code integrated terminal and OS terminal.
Check your git config --global credential.helper: it references the program in charge of caching your credentials.
A git config --global --unset credential.helper would remove it, forcing Git to always ask for your credentials.

"Failed to load owners" error in Xcode using GitHub

I am just starting out trying to connect Xcode to Github. I keep getting this peculiar error, saying "Failed to load owners" whenever I try to create a remote repository from within Xcode under the Source Control Manager. See the error here
If I ignore the warning, the upload then fails with this error.
I cannot seem to find anything online regarding this, and I cannot for the world notice anything being wrong with my GitHub account. The account itself is also accepted by Xcode (successfully added under the Accounts pane in Preferences).
Any help will be greatly appreciated.
In your GitHub account, when you are creating a personal access token to connect your Xcode to GitHub, you have to check off repo, write:packages, and read:packages.
Shown by the image here: https://i.stack.imgur.com/NUiiC.png
Then, you should be able to create the repo without any problems! Hope this helped.
I deleted my GitHub-Profile in the XCode Preferences and setted up again. After that it worked smoothly.
After having had a chat with a kind representative from GitHub Developer Support, it seems like it in my case had to do with my old username and password credentials that was saved on my machine. I quote:
Sometimes applications can use these old credentials, even if you
replace it with the personal access token.
Credentials for git authentication are stored in the Keychain App, and
git passes these onto GitHub when pushing changes to a Repository.
I'd suggest checking in the Keychain App for any records with the name
GitHub.
If they exist, delete those and try the push again.
Git should ask you to enter your username and password and once you
re-enter them, the correct credentials should be stored in your
Keychain app for future use.
So there you have it. This in fact solved my problem. It could also have had something to do with the personal access token that might not be set up with the proper permissions. If you have the same problem as I had you could also check out the scopes on your personal access token to verify it has access to everything you need. Step 7 on the help guide below has a screenshot of what that looks like:
https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line
For anyone who's looking for another way. What happened to me is that my personal access token expired, and I needed to generate a new one in Github / setting/ developer/ access token. After I generated a new one, I logged out of Github via Xcode, Logged back in and put in my new access code and cleared the issue!

Git github not working with google authenticator OSX

So I had git running on my computer just fine. My password was saved with the osxkeychain thingy and everything ran smoothly. Today I decided I should be safe and enable google authenticator 2-step authentication on all the sites that support it. Interestingly github supports it so I set it up. It works fine through the website interface. I proceed to branch a project I'm working on and do a bit of work and then I try to push the new branch up. Not surprised at all when I find out my authentication doesn't work. What is surprising to me is that I can't seem to find anything at all on google to solve my problem.
my initial error was this:
git push --set-upstream origin binary-dev
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/***/***.git/'
I then purged my old password stuff to get the interactive prompt with:
git credential-osxkeychain erase
host=github.com
protocol=https
And that worked at getting rid of my old settings but now I get:
git push --set-upstream origin binary-dev
Username for 'https://github.com': ***
Password for 'https://***#github.com':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/***/***.git/'
So git itself doesn't seem to know about the google authenticator. I literally can't seem to find any information on this. About half the pages are about how to set it up on the website and the other half are how to fork the actual google authenticator source code. I may not be creative enough with my keywords though. There may also be no solution but then I have to wonder why github offers 2-factor auth at all? Is there anyone out there who's been stuck here like me and has found a way out? Any help would be greatly appreciated. I just want git to work like it did before I added the 2-step auth to github.
Thanks in advance,
Max
So the way I got it working was to bypass the 2-step authentication using:
https://help.github.com/articles/providing-your-2fa-security-code#through-the-command-line
Thanks to "c4urself" over on serverfault.

Heroku (tried everything that I can find resources to)

I have tried pretty much everything I can think of to just be able to login to heroku. The only thing left I could think of is run as a new user on my computer (which is a mac). And then see if it's something that is messed up with my config.
At one point I could but then I had conflicts with an old work email it was using, although I was able to use heroku, i couldn't get to that email anymore.
So I tried to start as if I just installed heroku and I started a new account, and I tried the standard setup then I went to this: Cannot push to Heroku because key fingerprint
And nothing worked, I just keep getting Authentication failed. Any Ideas?
Just to recap:
I've
deleted the ~/.ssh directory and added github then my heroku key with the add:key function
tried just making a new user account and reinstalling tool belt, and going through a normal setup flow.
And tried various stackoverflow solutions the latest being referenced above.
-- What I'd like to do isn't special, it's just to have one user account on my computer. Is there an issue if your user account email is the same as your github email? I've tried it with and without and all I get is "Authentication failed." again and again.
Plleeeassee help.
tyttytyty

Resources