GIT에서 사용자 이름과 비밀번호를 저장하는 방법은 무엇입니까?
매번 프롬프트에 내 사용자와 비밀번호를 입력하지 않고 GitExtension 에서 자동으로 푸시 및 풀을 사용하고 싶습니다 .
그렇다면 GIT에 내 자격 증명을 어떻게 저장할 수 있습니까?
운영
git config --global credential.helper store
그때
git pull
사용자 이름과 암호를 입력하면 해당 세부 정보가 나중에 기억됩니다. 자격 증명은 "사용자 읽기 / 쓰기 가능"디스크 권한을 사용하여 디스크의 파일에 저장되지만 여전히 일반 텍스트입니다.
나중에 비밀번호를 변경하려면
git pull
암호가 올바르지 않기 때문에 실패 할 것입니다. git은 ~/.git-credentials
파일 에서 문제가되는 사용자 + 암호를 제거 하므로 이제 다시 실행하십시오.
git pull
이전처럼 작동하도록 새 암호를 제공합니다.
를 사용하여 git config
git에서 자격 증명 저장소를 활성화 할 수 있습니다 .
git config --global credential.helper store
이 명령을 실행할 때 원격 저장소에서 처음 가져 오거나 푸시 할 때 사용자 이름과 비밀번호에 대한 질문이 표시됩니다.
이후에 원격 저장소와의 후속 통신을 위해 사용자 이름과 비밀번호를 제공 할 필요가 없습니다.
저장 형식은 .git-credentials
일반 텍스트로 저장된 파일입니다.
또한, git config credential.helper
즉 메모리 캐시에 대해 다른 도우미를 사용할 수 있습니다 .
git config credential.helper cache <timeout>
선택적 timeout parameter
을 사용하여 자격 증명이 메모리에 보관되는 기간을 결정합니다. 도우미를 사용하면 자격 증명이 디스크에 닿지 않으며 지정된 시간 초과 후에 지워집니다. default
값은900 seconds (15 minutes).
경고 :이 방법을 사용하면 git 계정 암호가 plaintext
형식 으로 저장됩니다 global .gitconfig file
. 예를 들어 Linux에서는/home/[username]/.gitconfig
이것이 바람직하지 않은 경우 ssh key
계정에 대신을 사용하십시오.
다음과 같이 사용자 이름과 비밀번호를 설정할 수 있습니다.
git config --global user.name "your username"
git config --global user.password "your password"
자격 증명 도우미를 켜서 Git이 잠시 동안 메모리에 암호를 저장하도록합니다.
터미널에 다음을 입력하십시오.
# Set git to use the credential memory cache
git config --global credential.helper cache
기본적으로 Git은 15 분 동안 암호를 캐시합니다.
기본 비밀번호 캐시 제한 시간을 변경하려면 다음을 입력하십시오.
# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'
에서 GitHub의 도움말
~/.gitconfig
파일을 편집 하여 자격 증명 을 저장할 수 있습니다.
sudo nano ~/.gitconfig
이미 있어야하는
[user]
email = your@email.com
user = gitUSER
이 파일의 맨 아래에 추가해야합니다.
[credential]
helper = store
내가이 옵션을 추천하는 이유는 그것이 글로벌이기 때문이며 언제라도 옵션을 제거해야하는 경우 어디로 가야하는지 알고 변경해야합니다.
이 옵션은 개인 컴퓨터에서만 사용하십시오.
Then when you pull | clone| enter you git password, in general, the password will be saved in ~/.git-credentials
in the format
https://GITUSER:GITPASSWORD@DOMAIN.XXX
WHERE DOMAIN.XXX COULD BE GITHUB.COM | BITBUCKET.ORG | OTHER
See Docs
Restart your terminal.
Just put your credentials in the Url like this:
https://Username
:Password
@github.com/myRepoDir/myRepo.git
You may store it like this:
git remote add myrepo https://Userna...
...example to use it:
git push myrepo master
Now that is to List the url aliases:
git remote -v
...and that the command to delete one of them:
git remote rm myrepo
You can use git-credential-store to store your passwords unencrypted on the disk, protected only by the permissions of the file system.
Example
$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
[several days later]
$ git push http://example.com/repo.git
[your credentials are used automatically]
You can check the credentials stored in the file ~/.git-credentials
For more info visit git-credential-store - Helper to store credentials on disk
For global setting, open the terminal (from any where) run following:
git config --global user.name "your username"
git config --global user.password "your password"
By that any local git repo that you have on your machine will use that information.
You can individually config for each repo by doing:
- open terminal at the repo folder.
run following:
git config user.name "your username" git config user.password "your password"
It affects only that folder (because your configuration is local).
You will be more secure if you use SSH authentication than username/password authentication.
If you are using a Mac, SSH client authentication is integrated into the MacOS keychain. Once you have created an SSH key, type into your terminal:
ssh-add -K ~/.ssh/id_rsa
This will add the SSH private key to the MacOS keychain. The git client will use ssh when it connects to the remote server. As long as you have registered your ssh public key with the server, you will be fine.
In that case you need git credential helper to tell git to remember your GitHub password and username by using following command line :
git config --global credential.helper wincred
and if you are using repo using SSH key then you need SSH key to authenticate.
After going over dozens of SO posts, blogs, etc, I tried out every method, and this is what I came up with. It covers EVERYTHING.
The Vanilla DevOps Git Credentials & Private Packages Cheatsheet
These are all the ways and tools by which you can securely authenticate git to clone a repository without an interactive password prompt.
- SSH Public Keys
- SSH_ASKPASS
- API Access Tokens
- GIT_ASKPASS
- .gitconfig insteadOf
- .gitconfig [credential]
- .git-credentials
- .netrc
- Private Packages (for Free)
- node / npm package.json
- python / pip / eggs requirements.txt
- ruby gems Gemfile
- golang go.mod
The Silver Bullet
Want Just Works™? This is the magic silver bullet.
Get your Access Token (see the section in the cheatsheet if you need the Github or Gitea instructions for that) and set it in an environment variable (both for local dev and deployment):
MY_GIT_TOKEN=xxxxxxxxxxxxxxxx
For Github, copy and run these lines verbatim:
git config --global url."https://api:$MY_GIT_TOKEN@github.com/".insteadOf "https://github.com/"
git config --global url."https://ssh:$MY_GIT_TOKEN@github.com/".insteadOf "ssh://git@github.com/"
git config --global url."https://git:$MY_GIT_TOKEN@github.com/".insteadOf "git@github.com:"
Congrats, now any automated tool cloning git repositories won't be obstructed by a password prompt, whether using https or either style of ssh url.
Not using Github?
For other platforms (Gitea, Github, Bitbucket), just change the URL. Don't change the usernames (although arbitrary, they're needed for distinct config entries).
Compatibility
This works locally in MacOS, Linux, Windows (in Bash), Docker, CircleCI, Heroku, Akkeris, etc.
More Info
See the ".gitconfig insteadOf" section of the cheatsheet.
Security
See the "Security" section of the cheatsheet.
None of the answers above worked for me. I kept getting the following every time I wanted to fetch
or pull
:
Enter passphrase for key '/Users/myusername/.ssh/id_rsa':
For Macs
I was able to stop it from asking my passphrase by:
- Open config by running:
vi ~/.ssh/config
- Added the following:
UseKeychain yes
- Saved and quit: Press Esc, then enter
:wq!
For Windows
I was able to get it to work using the info in this stackexchange: https://unix.stackexchange.com/a/12201/348665
Apart from editing the ~/.gitconfig
file, that you can do if you ask:
git config --local --edit
or
git config --global --edit
Note to always use single quotes:
git config --local user.name 'your username'
git config --local user.password 'your password'
or
git config --global user.name 'your username'
git config --global user.password 'your password'
Your username and password may use some characters that would break your password if you use double quotes.
--local
or --global
means configuration params are saved for the project or for the os user.
just use
git config --global credential.helper store
and do the git pull, it will ask for username and password, from now on it will not provide any prompt for username and password it will store the details
Store username and password in .git-credentials
.git-credentials
is where your username and password is stored when you run git config --global credential.helper store
, which is what other answers suggest, and then type in your username and password:
https://${username}:${password_or_access_token}@github.com
So, in order to save the username and password:
git config —-global credential.helper store
echo “https://${username}:${password_or_access_token}@github.com“ > ~/.git-credentials
This is very useful for github robot, e.g. to solve Chain automated builds in the same docker repository by having rules for different branch and then trigger it by pushing to it in post_push
hooker in docker hub.
An example of this can be seen here in stackoverflow.
From the comment by rifrol, on Linux Ubuntu, from this answer:
sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
Some other distro's provide the binary so you don't have to build it.
In OS X it typically comes "built" with a default module of "osxkeychain" so you get it for free.
참고URL : https://stackoverflow.com/questions/35942754/how-to-save-username-and-password-in-git
'programing' 카테고리의 다른 글
JavaScript에서 문자열이 같은지 확인하는 올바른 방법은 무엇입니까? (0) | 2020.09.29 |
---|---|
"찾기"에서 모든 "권한 거부"메시지를 제외하려면 어떻게합니까? (0) | 2020.09.29 |
C #에서 문자열을 열거 형으로 변환 (0) | 2020.09.29 |
목록 이해력 대 람다 + 필터 (0) | 2020.09.29 |
Android Studio에서 자동 가져 오기의 바로 가기는 무엇입니까? (0) | 2020.09.29 |