Mercurial로 사용자 이름과 비밀번호를 저장하는 방법은 무엇입니까?
개인 프로젝트에서 Mercurial을 사용했으며 서버에 무언가를 푸시하려고 할 때마다 사용자 이름과 비밀번호를 입력했습니다.
.hgrc
홈 디렉토리 의 파일에 다음을 추가하려고 시도했지만 완전히 무시 된 것 같습니다.
[ui]
username = MY_USER_NAME
password = MY_PASSWORD
올바른 방법으로 이것을하는 방법?
다음 과 같이 파일 .hgrc
또는 Mercurial.ini
파일 에 인증 섹션을 만들 수 있습니다 .
[auth]
bb.prefix = https://bitbucket.org/repo/path
bb.username = foo
bb.password = foo_passwd
'bb'부분은 임의의 식별자이며 접두사를 사용자 이름 및 비밀번호와 일치시키는 데 사용됩니다. 다른 사이트에서 다른 사용자 이름 / 암호 콤보를 관리하는 데 편리합니다 (접두사)
사용자 이름 만 지정할 수 있으며 푸시 할 때 비밀번호를 입력하면됩니다.
또한 키링 확장을 살펴 보는 것이 좋습니다 . 암호는 일반 텍스트 파일 대신 시스템의 키 링에 암호를 저장하기 때문에 더 안전합니다. Windows에서는 TortoiseHg와 함께 번들로 제공되며 현재 모든 플랫폼에서 번들 확장으로 배포하는 것에 대한 토론이 있습니다.
이를 수행하는 세 가지 방법이 있습니다. .hgrc 파일 사용, ssh 사용 또는 키링 확장 사용
1. INSECURE 방법-~ / .hgrc 파일을 업데이트하십시오
나를 위해 작동하는 형식은 ~ / .hgrc 파일입니다.
[ui]
username=Chris McCauley <chris.mccauley@mydomain.com>
[auth]
repo.prefix = https://server/repo_path
repo.username = username
repo.password = password
고유 한 태그를 추가하여 접두사, 사용자 이름, 비밀번호의 3 중 트립을 더 추가하여 원하는만큼 리포지토리를 구성 할 수 있습니다.
이것은 Mercurial 1.3에서만 작동하며 사용자 이름과 비밀번호는 일반 텍스트로되어 있습니다-좋지 않습니다.
2. 안전한 방법-비밀번호를 사용하여 SSH를 사용하지 않기
Mercurial은 SSH를 완벽하게 지원하므로 비밀번호없이 서버에 로그인 할 수있는 SSH의 기능을 활용할 수 있습니다 . 자체 생성 된 인증서를 제공하기 위해 구성을 한 번만 수행하십시오. 이것은 당신이 원하는 것을하는 가장 안전한 방법입니다.
비밀번호없는 로그인 구성에 대한 자세한 정보는 여기 에서 찾을 수 있습니다.
3. 열쇠 고리 확장
보안 옵션을 원하지만 SSH에 익숙하지 않은 경우이 방법을 시도해보십시오.
문서에서 ...
확장은 기본적으로 수행되는 것처럼 원격 저장소에 대한 첫 번째 끌어 오기 / 푸시에서 HTTP 암호를 입력하라는 메시지를 표시하지만 암호 데이터베이스에 암호 (사용자 이름과 원격 저장소 URL 조합으로 입력)를 저장합니다. 다음 실행시에는 .hg / hgrc에서 사용자 이름을 확인한 다음 암호 데이터베이스에서 적합한 암호를 확인하고 해당 자격 증명이있는 경우 해당 자격 증명을 사용합니다.
여기에 더 자세한 정보가 있습니다
키링 확장에 대해서는 언급 한 사람이 없습니다. 사용자 키와 비밀번호를 시스템 키링에 저장하는데, 위에서 언급 한 것처럼 비밀번호를 정적 파일에 저장하는 것보다 훨씬 안전합니다. 아래 단계를 수행하면 좋을 것입니다. 나는 이것을 약 2 분 안에 우분투에서 실행했다.
>> sudo apt-get install python-pip
>> sudo pip install keyring
>> sudo pip install mercurial_keyring
**Edit your .hgrc file to include the extension**
[extensions]
mercurial_keyring =
https://www.mercurial-scm.org/wiki/KeyringExtension
간단한 해킹은 프로젝트 .hg/hgrc
파일 의 푸시 URL에 사용자 이름과 비밀번호를 추가하는 것입니다 .
[paths]
default = http://username:password@mydomain.com/myproject
(이 방법으로 비밀번호를 일반 텍스트로 저장합니다)
동일한 도메인에서 여러 프로젝트를 작업하는 경우 모든 프로젝트에 대해이 규칙 이 반복되지 않도록 파일에 다시 쓰기 규칙 을 추가 할 수 ~/.hgrc
있습니다.
[rewrite]
http.//mydomain.com = http://username:password@mydomain.com
비밀번호는 일반 텍스트로 저장되므로 일반적으로 사용자 이름 만 저장합니다.
Gnome에서 작업중인 경우 Mercurial과 Gnome Keyring을 통합하는 방법에 대해 설명합니다.
http://aloiroberto.wordpress.com/2009/09/16/mercurial-gnome-keyring-integration/
위의 NOBODY는 초보자 사용자에게 설명 / 명명 된 용어입니다. 그들은 용어로 혼란스러워합니다.
.hg / hgrc-이 파일은 리포지토리의 로컬 / 작업 공간 위치 / 실제 리포지토리의 .hg 폴더에 사용됩니다.
~ / .hgrc-이 파일은 아래 파일과 다릅니다. 이 파일은 ~ 또는 홈 디렉토리에 있습니다.
myremote.xxxx = ..... bb.xxxx = ......
이것은 수은 키링 확장을 사용하는 동안 [auth] 섹션 / 지시문의 행 중 하나입니다. 거기에 넣은 서버 이름이 "hg clone"을 수행하는 동안 사용하는 것과 일치하는지 확인하십시오. 그렇지 않으면 키 링에 사용자를 찾을 수 없습니다. 아래 줄에있는 bb 또는 myremote는 "hg clone http : /.../../ repo1 bb 또는 myremote"를 수행하는 동안 반드시 부여해야하는 "별칭 이름"입니다. 그렇지 않으면 작동하지 않거나 로컬을 확인해야합니다. 리포지토리의 .hg / hgrc 파일에는 동일한 별칭 (예 : hg clone ..을 마지막 매개 변수로 수행 한 동안 제공 한 파일)이 포함되어 있습니다.
PS 자세한 내용은 다음 링크를 참조하십시오. 문법을 빨리 작성하여 죄송합니다.
- https://stackoverflow.com/questions/14267873/mercurial-hg-no-changes-found-cant-hg-push-out/14269997#14269997
- http://www.linuxquestions.org/questions/showthread.php?p=4867412#post4867412
- https://stackoverflow.com/questions/12503421/hg-push-error-and-username-not-specified-in-hg-hgrc-keyring-will-not-be-used/14270602#14270602
- OpenSUSE Apache-Windows LDAP-그룹 사용자 인증-Mercurial
예 : ~ / .hgrc (Linux / Unix의 사용자 홈 디렉토리) 또는 Windows의 mercurial.ini (사용자 홈 디렉토리)에있는 경우 다음 행을 포함합니다.
`"hg clone http://.../.../reponame myremote"`
그러면 http repo 링크 당 사용자 자격 증명을 입력하라는 메시지가 표시되지 않습니다. [extensions] 아래의 ~ / .hgrc에 "mercurial_keyring ="또는 "hgext.mercurial_keyring = /path/to/your/mercurial_keyring.py"줄이 있습니다.이 줄 중 하나가 있어야합니다.
[auth]
myremote.schemes = http https
myremote.prefix = thsusncdnvm99/hg
myremote.username = c123456
사용자가 사용자 이름 / 암호 프롬프트없이 http : // .... / ...에서 언급 한 것에 대해 걱정하지 않고 Hg 작업을 복제하거나 수행 할 수 있도록 PREFIX 속성을 설정하는 방법을 찾으려고합니다. Hg repo 링크를 사용하는 동안 servername. IP, 서버 이름 또는 서버의 FQDN 일 수 있습니다.
MacPorts를 사용하여 Mac OSX에 mercurial_keyring 설치 :
sudo port install py-keyring
sudo port install py-mercurial_keyring
~ / .hgrc에 다음을 추가하십시오.
# Add your username if you haven't already done so.
[ui]
username = email@address.com
[extensions]
mercurial_keyring =
TortoiseHg를 사용하는 경우 첨부 된 스크린 샷에 표시된이 세 단계를 수행해야합니다. 그러면 작업중인 특정 리포지토리에 대한 자격 증명이 추가됩니다.
글로벌 설정을 추가하려면 C : \ users \ user.name \ mercurial.ini 파일에 액세스 하여 섹션을 추가하십시오
[auth]
bb.prefix=https://bitbucket.org/zambezia/packagemanager
bb.username = $username
bb.password = $password
도움이 되었기를 바랍니다.
귀하의 상황에서 작동하거나 작동하지 않을 수 있지만 Putty 's Pageant를 사용하여 공개 / 개인 키를 생성하는 것이 유용하다는 것을 알았습니다.
bitbucket (.org)을 사용하는 경우 사용자 계정에 공개 키를 제공 할 수있는 기능을 제공해야하며 리포지토리에 도달하는 명령은 자동으로 보호됩니다.
재부팅시 Pageant가 시작되지 않으면 Windows "시작 메뉴"에 Pageant 바로 가기를 추가 할 수 있으며 바로 가기에는 개인 (.ppk) 파일의 위치로 채워진 '속성'이 필요할 수 있습니다. .
이를 통해 Mercurial과 로컬 리포지토리는 SSH 형식을 사용하여 푸시 / 풀로 설정해야합니다.
다음은 Atlassian 의 Windows 또는 Mac / Linux 용 사이트에 대한 자세한 지침입니다 .
당신은 그것에 대해 내 말을 할 필요가 없으며 그것을 할 다른 방법은 의심의 여지가 없습니다. 여기 에 설명 된 이 단계 가 더 적합 할 수 있습니다.
- PuttyGen 시작-> PuTTY-> PuttyGen 시작
- 새 키를 생성하고 암호없이 .ppk 파일로 저장
- 퍼티를 사용하여 연결하려는 서버에 로그인하십시오
- PuttyGen의 공개 키 텍스트를 ~ / .ssh / authorized_keys의 텍스트에 추가
- 시작-> 퍼티에서 시작-> 시작으로 .ppk 파일의 바로 가기를 만듭니다.
- 시작 메뉴에서 .ppk 바로 가기를 선택하십시오 (시작할 때마다 자동으로 수행됨)
- 시스템 트레이의 미인 대회 아이콘을 참조하십시오? 마우스 오른쪽 버튼으로 클릭하고 "새 세션"을 선택하십시오.
- “호스트 이름”필드에 username @ hostname을 입력하십시오
- 이제 자동으로 로그인합니다.
참고 URL : https://stackoverflow.com/questions/2584407/how-to-save-username-and-password-with-mercurial
'IT' 카테고리의 다른 글
반응-포착되지 않은 TypeError : 정의되지 않은 'setState'속성을 읽을 수 없습니다. (0) | 2020.03.28 |
---|---|
병합 후 커밋시 Git 오류-치명적 : 병합 중 부분 커밋을 수행 할 수 없음 (0) | 2020.03.28 |
f (i = -1, i = -1) 동작이 정의되지 않은 이유는 무엇입니까? (0) | 2020.03.28 |
.NET NewtonSoft JSON은 다른 속성 이름으로 맵을 역 직렬화합니다. (0) | 2020.03.28 |
strings.xml의 매개 변수가 가능합니까? (0) | 2020.03.28 |