Lưu mật khẩu trong TortoiseHg


200

Có cách nào để cấu hình TortoiseHg để lưu trữ mật khẩu của tôi không?

Tôi có một dự án được lưu trữ trên Google Code mà tôi truy cập bằng TortoiseHg. Bất cứ khi nào tôi muốn đẩy các thay đổi sang Google Code TortoiseHg sẽ nhắc tôi nhập tên người dùng và mật khẩu. Google Code yêu cầu tôi sử dụng mật khẩu được tạo tự động và nó trở nên khá lặp đi lặp lại để tìm kiếm nó mỗi lần.

Câu trả lời:


70

Cảnh báo an ninh

Mặc dù câu trả lời này được chấp nhận kể từ 2017-09-15, nhưng nó không phải là một giải pháp được đề xuất. Bạn không bao giờ nên lưu trữ mật khẩu của bạn trong văn bản đơn giản. Sử dụng mercurial_keyringphần mở rộng thay thế. Xem câu trả lời khác ở đây.


Bạn có thể thay đổi URL đẩy của mình thành https: // tên người dùng: password@hostname.com/repo .

Điều này được giải thích trong Câu hỏi thường gặp của Google CodeMercurial .

EDIT: Câu hỏi thường gặp về Mercurial giải thích một cách khác để làm điều đó:

Với Mercurial 1.3, bạn cũng có thể thêm phần xác thực vào tệp hgrc của mình:
[xác thực]
example.prefix = https://hg.example.net/
example.username = foo
example.password = thanh

51
Đây là một câu trả lời tồi! Bạn không bao giờ nên lưu trữ mật khẩu văn bản gốc trong bất kỳ tệp nào ... !! Tùy chọn khác (có nhiều phiếu hơn) sử dụng mercurial_keyring là điều đúng đắn duy nhất cần làm!
Lars Corneliussen

6
+1. Xem xét đó hg pushlà không phá hủy (bạn luôn có thể thay đổi hg stripkhông mong muốn), đẩy vào một kho lưu trữ từ xa hầu như không phải là một hoạt động đặc quyền cao. Vì lý do đó, lưu trữ mật khẩu văn bản thường là hoàn toàn đủ, miễn là người ta nhận thức được ý nghĩa bảo mật.
Søren Løvborg

4
Vấn đề không phải là ai đó có thể làm hỏng kho lưu trữ. Vấn đề là: (1) mọi người sử dụng lại mật khẩu, vì vậy một khi ai đó quản lý để truy cập tệp văn bản này, họ sẽ có thể truy cập các tài nguyên không liên quan; (2) các vụ hack tùy ý có thể được lẻn vào mã nguồn ... (3) mã có thể là bí mật (không phải tất cả sự phát triển đều là nguồn mở) và việc đánh cắp nó không phải lúc nào cũng thú vị.
tối đa

6
@max 1) Có thể đúng về mặt lý thuyết, nhưng OP đặc biệt tuyên bố rằng anh ta đang sử dụng kiểm soát phiên bản mật khẩu được tạo tự động 2) dừng việc này, bạn có thể thấy tất cả các thay đổi đã được kiểm tra, tại sao điều này có thể là một vấn đề? 3) nếu ai đó có quyền truy cập vào mật khẩu văn bản gốc được lưu trữ trên máy tính của bạn, họ cũng có quyền truy cập vào mã của bạn. Mật khẩu ở đây là vô nghĩa vì họ chỉ có thể đổ mã của bạn vào một dongle.
Goldenratio

4
@LarsCorneliussen Đây không phải là một câu trả lời tồi. Không phải mọi trường hợp sử dụng đều yêu cầu mức độ bảo mật đó. Phần mở rộng keyring là một tùy chọn, giống như điều này.
Cypher

265

Cả hai câu trả lời hiện tại đều đề nghị lưu trữ tên người dùng và mật khẩu của bạn không được mã hóa trong văn bản thuần túy , đó là một chút không.

Bạn nên sử dụng Keyring mở rộng thay vào đó, vì nó đã được thiết kế đặc biệt để lưu một cách an toàn mật khẩu xác thực. Nó đã đi kèm với TortoiseHg , vì vậy tất cả những gì bạn phải làm là kích hoạt nó bằng cách viết như sau vào tệp mercurial.ini của bạn :

[extensions]
mercurial_keyring=

Bạn cũng sẽ phải liên kết tên người dùng của mình với url đẩy bằng cách chỉnh sửa tệp .hg \ hgrc dành riêng cho kho lưu trữ của bạn như trong ví dụ bên dưới:

[paths]
default = https://<your_username>@bitbucket.org/tortoisehg/thg

Để biết thêm chi tiết về kết hợp tên của bạn với url, xem Repository Cấu hình (SMTP) phần của Keyring trang mở rộng.


2
Tôi vừa thử giải pháp này và nó hoạt động rất tốt với windows 7. Rất đẹp! Cảm ơn!
mateuscb

hoạt động tốt với tôi - nhưng tôi nghĩ bạn cũng cần bao gồm tên người dùng, dưới tiêu đề [auth] hoặc sửa đổi đường dẫn đến kho lưu trữ như tên người dùng @ host (theo liên kết key trên)
Tom Carver

1
Câu trả lời tốt, chắc chắn là con đường để đi.
vobject

Còn việc lưu tên người dùng và mật khẩu nếu bạn đứng sau proxy web thì sao?
Seth

3
Cách chính xác sẽ là sử dụng phần xác thực để định cấu hình tên người dùng. Bạn không nên có auth thông tin trong repo của bạn con đường ví dụ[auth] \n bitbucket.org.prefix = bitbucket.org \n bitbucket.org.username = schlamar
schlamar

150

Ba bước, xem ảnh chụp màn hình . Lưu ý: Điều này lưu mật khẩu của bạn trong văn bản gốc.

nhập mô tả hình ảnh ở đây


37
Dường như điều này cũng lưu trữ mật khẩu trong văn bản gốc - nếu bạn bật tiện ích mở rộng khóa, thì trường mật khẩu sẽ bị vô hiệu hóa
Vlad Iliescu

5
Chỉ hoạt động nếu bạn đang sử dụng giao thức https, khi cài đặt thành http, ổ khóa sẽ biến mất.
Despertar

Chấp nhận câu trả lời di sản, điều này nên có màu xanh lá cây!
William T. Mallard


2

Chỉ cần sửa đổi hgrctệp trong .hgthư mục của kho lưu trữ cục bộ của bạn để nó trông như thế này:

[paths]
default = https://name:password@yourproj.googlecode.com/hg/

trong đó tên là thông tin đăng nhập Google Code của bạn mà không có bit gmail / googlemail, ví dụ: 'fredb' (không phải fredb@gmail.com), mật khẩumật khẩu do Google tạo và yourproj là tên của dự án GC của bạn. Vì vậy, một cái gì đó như:

default = https://fred:xyz123@fredproj.googlecode.com/hg/

11
Không bao giờ lưu trữ mật khẩu trong văn bản đơn giản. KHÔNG BAO GIỜ! Sử dụng mercurial_keyring - TortoiseHG sau đó chỉ yêu cầu mật khẩu một lần.
Lars Corneliussen

1
Không bao giờ nói không bao giờ :) Có, khóa SSH thích hợp hơn so với Khóa, khóa tốt hơn so với bản rõ, nhưng thực sự có nhiều tình huống khác nhau. PS nâng cấp cả câu trả lời "keyring" và cái này.
Alex Shesterov

0

Điều này làm việc cho tôi bằng cách sử dụng SSH. Tôi biết mật khẩu trong văn bản đơn giản, nhưng đây không phải là vấn đề trong dự án này. Bạn phải thay đổi myUser và MyOPas cho thông tin đăng nhập của bạn và đường dẫn đến: TortoisePlink.exe. Chỉnh sửa mercurial.ini

[reviewboard]
password = myPass
[ui]
username = myUser
ssh = "C:\Program Files\TortoiseHg\lib\TortoisePlink.exe" -l myUser -pw  myPass

0

Nếu bạn muốn lưu trữ mật khẩu trong mercurial.ini và nó không hoạt động nữa sau khi bạn nâng cấp lên TortoiseHg 4.9 trở lên, một giải pháp khả thi là thêm cổng vào tiền tố:

[auth]
tax.prefix = http://server:8080
tax.username = cerveser
tax.password = mypassword
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.