Mật khẩu hỏi Tortoisegit


84

Tôi mới bắt đầu làm việc trên Git. Tôi sử dụng windows 7 và đã cài đặt msysgit (1.7.8) và Tortoisegit (1.7.6). Kho lưu trữ được tạo trên máy chủ Linux có thể truy cập thông qua mạng LAN. Vấn đề tôi đang gặp phải là tôi không thể sao chép kho lưu trữ bằng Tortoisegit, nó yêu cầu mật khẩu và tôi không chắc nó đang hỏi mật khẩu nào. Đồng thời, tôi có thể sao chép kho lưu trữ bằng Git Gui và thực hiện tất cả các thao tác. Ai có thể vui lòng giúp tôi hiểu tại sao Tortoisegit hỏi mật khẩu trong khi Git Gui thì không. Tôi đã thử gỡ cài đặt Git và Tortoisegit rồi cài đặt lại nhưng không thành công.

Lỗi con rùa


máy chủ git của bạn đang sử dụng xác thực pubkey?
Felix Yan

Trên cùng một bản sao của repo, TortoiseGit đang làm gì và Git GUI đang làm gì?
manojlds

2
Khi bạn nhấp chuột phải vào Tortoise Git, hãy nhấp vào Cài đặt. Tại Git, có một liên kết -> Remote, nhấp vào đó. Từ danh sách từ xa nhấp vào nguồn gốc. Ở bên phải, bạn sẽ thấy URL. Thay vì tên người dùng của bạn tại URL, hãy viết rằng: tên người dùng: <mật khẩu của bạn>. Cuối cùng khi bạn thực hiện thao tác git từ Tortoise Git, bạn sẽ thấy rằng nó không bao giờ hỏi bạn về mật khẩu.
kamaci

1
Bạn có đang sử dụng http URI thay vì SSH không? Đó là vấn đề của tôi
CAD bloke

Đối với "những người đặc biệt" trong số chúng ta (bao gồm cả tôi), hãy nhớ xóa bit 'git clone' khỏi mặt trước của lệnh trước khi dán nó vào cửa sổ URL của cửa sổ Tortoise Git Clone - nếu không, bạn sẽ gặp sự cố tương tự
icc97

Câu trả lời:


131

Đồng nghiệp của tôi đã giải quyết vấn đề. Các bước:

  1. Nhấp chuột phải -> TortoiseGit -> Cài đặt -> Mạng
  2. Khách hàng SSH đã trỏ đến C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
  3. Đã thay đổi đường dẫn đến C:\Program Files (x86)\Git\bin\ssh.exe

Đường dẫn thay thế: C:\Users\...\AppData\Local\Programs\Git\usr\bin\ssh.exe


nó hoạt động với tôi với phiên bản rùa 1.8.3 ... vấn đề này khiến tôi phát điên !! trên WindowsXP @ 32 bit TortoiseGit chỉ làm việc với c: \ programmi \ git \ bin \ ssh.exe trên Windows7 @ 64 nó hoạt động tốt với toirtoiseplink.exe (mặc định)
Evilripper

Trên máy Windows 8 của tôi, trỏ máy khách SSH tới tệp msysGit ssh.exe đã hoạt động khi truy vấn mật khẩu hoàn toàn không hiển thị. Một vấn đề khác nhau nhưng giải pháp này chắc chắn là đáng thử cho một ai đó gặp vấn đề ssh với TortoiseGit
Icermann

1
Đối với tôi điều này không giúp được gì (ít nhất là khi kết nối với GitHub, tôi đã không thử các kho lưu trữ khác).
Suma

2
Cảm ơn, hoạt động hoàn hảo. Mặc dù tôi ssh.exenằm trong thư mục người dùng của tôiC:\Users\...\AppData\Local\Programs\Git\usr\bin
ppasler

7
Như @ppasler đã đề cập, ssh.exe hiện nằm trong C: \ Program Files (x86) \ Git \ usr \ bin \ ssh.exe hoặc vị trí mà anh ấy đã đề cập, tùy thuộc vào cài đặt.
Vlad Schnakovszki

33

Nếu bạn cần sử dụng tên người dùng / mật khẩu, có một giải pháp đơn giản hơn nhiều so với câu trả lời số 2 hiện tại:

Right-click --> Tortoise Git --> Settings --> Git --> Credential --> Choose "Wincred, all Windows users" --> Hit apply

Lần tiếp theo bạn nhập mật khẩu cho repo, mật khẩu đó sẽ được lưu tự động.


Nếu bạn đang sử dụng một kho lưu trữ yêu cầu khóa SSH thay vì tên người dùng / mật khẩu (nghe có vẻ như là vấn đề ban đầu của OP) , bạn cần

  1. Mở khóa SSH trong thế hệ PuTTY (tự cài đặt cùng với Tortoise Git)
  2. Trong thế hệ PuTTY, lưu khóa dưới dạng khóa PuTTY.
  3. Trong kho Right-click --> Tortoise Git --> Settings --> Git --> Remotes,. Tìm điều khiển từ xa của bạn (thường là 'origin'), sau đó tải khóa PuTTY từ bước 2.

Trong trường hợp của tôi, điều này chỉ hoạt động khi sử dụng tên người dùng. Nó không hoạt động khi bạn nhập địa chỉ email của người dùng, vì vậy hãy ghi nhớ điều đó.
Razze

3
đây là câu trả lời ngắn gọn và rõ ràng nhất, cảm ơn bạn.
Alphas Supremum,

Đã tìm mãi cho câu trả lời chính xác này!
NielW

23

Để làm điều đó mà không cần phím ...

Nhấp chuột phải vào thư mục của bạn
Chọn rùa bò-> cài đặt-> Git-> Từ xa
Chọn nguồn gốc (hoặc bất cứ điều gì bạn đã gắn nhãn điều khiển chính của mình)

Dưới URL sử dụng định dạng này.

Https: // USERNAME: PASSWORD @ URL

Trong đó USERNAME là tên người dùng của bạn
: dấu hai chấm phân tách tên người dùng và mật khẩu và phải ở đó
MẬT KHẨU là mật khẩu của bạn
@ phân tách thông tin đăng nhập với
URL url của bạn là url bạn sẽ sử dụng để kết nối với tài nguyên .git

Cảm ơn đi đến Kamaci


3
Giải pháp này cũng hoạt động với chìa khóa. Sao chép Https: // USERNAME @ URL và bạn vẫn ổn.
Orace

2
Đúng, ngoại trừ đừng làm điều này vì khi bạn hợp nhất TortoiseGit có xu hướng đặt toàn bộ URL vào thông báo cam kết!
mwardm

Đây là giải pháp hoàn hảo. Nhưng có cách nào để ẩn mật khẩu, vì nó ở dạng văn bản thuần túy.
Amit Kumar

1
Điều gì xảy ra nếu mật khẩu chứa ký hiệu @?
Hammad Dar

Tôi đã sử dụng câu trả lời này vì tôi có mingw64 và tôi nhận được nhật ký này: Bỏ qua dòng lệnh '"C: \ Program Files \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe"' ('C: \ Program Files \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe 'không tìm thấy) Cần một dòng lệnh hợp lệ; Chỉnh sửa tài nguyên chuỗi cho phù hợp (3x) lỗi: không thực hiện được tập lệnh nhắc (thoát mã 1)
RW4

14

Lưu tên người dùng và mật khẩu với TortoiseGit

Lưu chi tiết đăng nhập của bạn trong TortoiseGit khá dễ dàng. Tiết kiệm việc phải nhập tên người dùng và mật khẩu của bạn mỗi khi bạn thực hiện thao tác kéo hoặc đẩy.

  1. Tạo một tệp có tên _netrc với nội dung sau:

    máy github.com
    đăng nhập
    mật khẩu đăng nhập mật khẩu của bạn

  2. Sao chép tệp vào C: \ Users \ (hoặc một vị trí khác; đây chỉ là nơi tôi đã đặt nó)

  3. Đi tới dấu nhắc lệnh, nhập setx home C: \ Users \

Lưu ý: nếu bạn đang sử dụng thứ gì đó sớm hơn Windows 7, lệnh setx có thể không hoạt động với bạn. Thay vào đó, hãy sử dụng set và thêm biến môi trường gia đình vào Windows bằng cách sử dụng Cài đặt nâng cao trong Máy tính của tôi.

TÍN DỤNG ĐẾN: http://www.munsplace.com/blog/2012/07/27/saving-username-and-password-with-tortoisegit/


1
nó hoạt động rất tốt, nhưng có cách nào để mã hóa mật khẩu đơn giản không? Tôi cảm thấy không thoải mái khi lưu trữ mật khẩu github của mình trong tệp văn bản thuần túy.
Dio Phung

@DioPhung Hãy suy nghĩ về những gì bạn vừa nói. Nếu mật khẩu được mã hóa, bây giờ bạn cần nhớ mật khẩu (mới) để sử dụng mật khẩu. Nếu bạn không phải nhớ mật khẩu, thì tốt như không có mật khẩu (từ góc độ mối đe dọa cục bộ). Hoặc bạn muốn sự tiện lợi hoặc an toàn.
Camilo Martin

1
@DioPhung Nếu bạn sợ quản trị viên cục bộ, họ có thể dễ dàng cài đặt keylogger. Quản trị viên địa phương có thể làm bất cứ điều gì họ muốn với dữ liệu của bạn và như vậy, bất kỳ bảo mật nào chống lại họ sẽ là bảo mật thông qua sự che giấu (ngay cả các công cụ và thủ thuật mà ngân hàng sử dụng cũng không thể bảo vệ bạn trước một quản trị viên địa phương hiểu biết và kiên quyết, và họ cố gắng lên). Về hàm băm, ý bạn là gì? Hàm băm không thể đảo ngược. Và nếu bạn mã hóa bằng chính mật khẩu, bạn vẫn cần phải nhập mật khẩu đó mỗi lần ... Vì vậy, nó cũng giống như việc không mã hóa ngay từ đầu.
Camilo Martin

1
Mã hóa @CamiloMartin không yêu cầu mật khẩu; có nhiều cách để xác thực bằng hệ thống có thể thuận tiện hơn mật khẩu. Bảo mật không phải là tất cả hoặc không có.
adam

1
Mặc dù giải pháp này có thể thực hiện được, nhưng tốt hơn hết bạn nên lưu trữ mật khẩu trong Windows PasswordVault . Khả năng này đã có trong TortoiseGit kể từ tháng 3 năm 2013 bằng cách triển khai API git-credential-store . Nó có lẽ cũng dễ dàng hơn: From within repo → Context-click → TortoiseGit → Settings → Git → Credential → wincred → OKvà bạn đã hoàn tất. Tôi đã viết một câu trả lời đầy đủ cho câu hỏi này cho những người quan tâm.
adam

5

Một cách để làm điều này là

  • tạo cặp khóa bằng PuttyGen (hoặc nhập vào .ppk nếu bạn đã có khóa)
  • tải khóa cá nhân vào peagent
  • nhập khóa công khai vào máy chủ gitosis của bạn (cung cấp khóa công khai cho quản trị viên của bạn)
  • và sau đó sử dụng plink làm máy khách SSH

plink hoạt động nguyên bản với peagent để truy xuất khóa đã tải.

bạn có thể tìm thấy plink.exe cùng với peagent và các tính năng khác trong phân phối bột bả tiêu chuẩn

để sử dụng nó, hãy truy cập:

Cài đặt TortoiseGit -> Mạng -> Máy khách SSH.

theo mặc định, điều này chứa đường dẫn đến TortoisePlink.exe, thay vì cung cấp đường dẫn đến plink.exe

Ngoài ra, bạn có thể sử dụng ssh (.exe) trong phân phối msys (git) nhưng sau đó bạn không thể sử dụng khóa riêng ở định dạng .ppk / kết hợp Peagent. Bạn cần xuất khóa của mình sang định dạng OpenSSH thông qua PuttyGen hoặc tạo một cặp khóa bằng ssh-keygen để thay thế.


Ý của bạn là gì khi "SSH client thay vì TortoisePlink trỏ tới plink"? Chương trình SSH này có khả năng nằm ở đâu?
Mikaël Mayer

xin lỗi vì thiếu dấu câu, tôi nghĩ đó là nguồn gốc của sự nhầm lẫn. Tôi đã cập nhật câu trả lời
mzzzzb

Không cần thay đổi bất cứ điều gì trong cài đặt. Chỉ cần cung cấp khóa Putty riêng tư khi bạn sao chép một repo qua SSH và bạn đã hoàn tất. Hãy nhớ nhập điểm cuối SSH trong cửa sổ sao chép và KHÔNG phải là https.
MoonStom

4

Để tự động xác thực, hãy sử dụng:

  1. Các khóa SSH như những người khác đã chỉ ra, hoặc
  2. trình trợ giúp thông tin xác thực được tích hợp sẵn.

Rõ ràng, không lưu trữ mật khẩu của bạn trong một tệp văn bản trừ khi repo không quan trọng.

TortoiseGit> 1.8.1 cài đặt git-credential-winstore của trình trợ giúp cung cấp API cục bộ để truy cập và lưu trữ thông tin đăng nhập của bạn trong Windows Credential Store cục bộ, hiện có .

Bạn có thể xem thông tin đăng nhập đã lưu trữ bằng cách đi tới Bảng điều khiển → Tài khoản người dùng → Trình quản lý thông tin đăng nhập và chọn "Windows Credentials". Các mục bắt đầu "git:" là từ git-credential-winstore.

Bạn có thể thiết lập có dây cho mỗi kho lưu trữ bằng cách:

(GUI)

  1. Điều hướng đến kho lưu trữ trong File Explorer.
  2. Nhấp vào ngữ cảnh → TortoiseGit → Cài đặt → Git → Thông tin đăng nhập
  3. Trình trợ giúp thông tin xác thực: có dây - chỉ kho lưu trữ này
  4. Lần sau khi bạn xác thực bằng repo, thông tin đăng nhập sẽ được lưu trữ.

(CLI, POSH)

  1. cmdkey /add:git:https://USERNAME@github.com /user:USERNAME /pass:PASSWORD
  2.  

    @"
    [credential]
            helper = wincred
    "@ | Out-File -FilePath $repoRoot\.git\config -Append
    

Bạn có thể liệt kê tất cả thông tin đăng nhập được lưu trữ cho các repos với cmdkey /list:git:*
Khi đã lưu trữ, mật khẩu sẽ không được cmdkey hiển thị ( http://ss64.com/nt/cmdkey.html )

Để liệt kê tất cả thông tin đăng nhập có mật khẩu, bạn cần sử dụng Windows API . Đối với powershell, có CredMan :

. .\CredMan.ps1
.\CredMan.ps1 -ShoCred

4

Tôi gặp vấn đề tương tự. Môi trường của tôi là windows 10 với TortoiseGit 2.3.0.0 và git phiên bản 2.11.0.windows.1

Phần sau đã giải quyết được vấn đề của tôi:

  • Nhấp chuột phải -> TortoiseGit -> Cài đặt -> Mạng
  • Cập nhật máy khách SSH lên C: \ Program Files \ Git \ usr \ bin \ ssh.exe

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


3

Cả URL và tiêu đề cửa sổ TortoisePlink đều chỉ ra rằng rùa đang cố gắng sử dụng ssh làm giao thức truyền tải. git hỗ trợ nhiều hơn một giao thức truyền tải, bao gồm truy cập hệ thống tệp và truy cập ssh. Trong câu hỏi của bạn, bạn đang mô tả rằng bạn muốn truy cập kho lưu trữ từ xa của mình bằng quyền truy cập hệ thống tệp. Trong trường hợp đó, url từ xa của bạn sẽ trông như thế nào file://server/path/to/repo. Vui lòng kiểm tra lại URL repo từ xa của bạn.


3

Tôi đã làm gì để khắc phục điều này (cửa sổ):

  1. Mở PuttyGen nhập khóa ssh của tôi và chuyển đổi nó thành khóa putty, lưu cả phần công khai và riêng tư trong thư mục .ssh (% userprofile% .ssh)
  2. Mở Putty và đi tới Connection-> SSH-> Auth, sau đó đặt tệp khóa riêng của bạn ở đó.
  3. Quay lại Phiên, chọn Cài đặt mặc định và nhấn Lưu.
  4. Bây giờ, hãy thử sao chép một lần nữa và bạn sẽ được yêu cầu nhập cụm mật khẩu trên khóa ssh của mình, hãy nhập vào và nó sẽ hoạt động.

2

Câu trả lời của Pramodtech đã ngừng hoạt động đối với tôi với phiên bản hiện tại của ứng dụng khách Windows Git chính thức. Nó lưu trữ tệp thực thi ssh Git\usr\binthay vìGit\bin bây giờ (kể từ phiên bản 2.5 được phát hành vào tháng 8 năm 2015).

Vì vậy, hãy đi đến TortoiseGit > Settings > Network và thay đổi đường dẫn máy khách SSH thành:

C:\Program Files\Git\usr\bin\ssh.exe (hoặc bất kỳ đường dẫn nào đến cài đặt Git của bạn)

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


1

Thật không may, trên máy tính chạy Windows 8 của tôi, giải pháp với ứng dụng khách SSH bổ nhiệm lại không hoạt động. Giải pháp đã giải quyết vấn đề cho tôi ở đây: http://www.munsplace.com/blog/2012/07/27/saving-username-and-password-with-tortoisegit/


Hãy chỉ không post link dẫn thêm một số nội dung: meta.stackexchange.com/questions/8231/...
icc97

Đó cũng là câu trả lời mà Anthony Keane đã đưa ra ở trên.
rakensi

1

Vì không có giải pháp nào được cung cấp ở đây phù hợp với tôi và sau rất nhiều lần thất vọng với các giải pháp tôi tìm thấy trực tuyến, cuối cùng tôi đã sửa được lỗi này trên máy của mình.

Tôi không biết khi nào hoặc bằng cách nào tôi thiết lập putty TortoiseGit của mình để luôn sử dụng một khóa cụ thể và tất nhiên điều này đã gây ra tất cả các vấn đề khi tôi cố gắng kết nối với máy chủ khác bằng cặp khóa mới.

Vậy làm thế nào để khắc phục sự cố và làm thế nào để biết liệu bạn có thực sự gặp sự cố giống như tôi đã gặp phải hay không:

  1. Tải xuống plink.exetrên máy của bạn từ đây
  2. Mở dấu nhắc lệnh của windows trong cùng một thư mục mà bạn đã tải xuống plink.exe
  3. Chạy lệnh này: plink -v <path_to_your_git_clone_repo_link>
  4. Nhìn vào đầu ra và xem nếu bạn có dòng giống như Reading private key file "C:\Path\To\Some\privateKey.ppk"
  5. Nếu bạn thấy dòng như thế này và đó không phải là tệp keyty mà bạn muốn sử dụng thì chỉ cần đi và đổi tên / xóa / di chuyển tệp đó để plink không thể tải nó vào lần sau
  6. Sau khi bạn đổi tên tệp có vấn đề, tất cả sẽ hoạt động như mong đợi, nếu bạn chạy lệnh từ điểm 3. Bạn sẽ thấy rằng plink bây giờ không thể tải ppktệp đó và sau đó nó sẽ xuất ra một cái gì đó giống như Pageant is running. Requesting keys.và chúng tôi thực sự muốn điều này

Đó là nó, nếu có ai biết cách tôi có thể vô hiệu hóa "khóa putty mặc định chung" này, vui lòng cho tôi biết trong phần nhận xét và tôi sẽ cập nhật câu trả lời này với thông tin.


1

Vui lòng không URL của nguồn gốc từ xa repo có thể gây ra sự cố này. Tôi có một repo cũ hoạt động hoàn hảo và một repo mới mà tôi vừa sao chép đang yêu cầu tôi nhập mật khẩu.

Khi so sánh thông tin trong Settings > Git > Remote > Urltôi thấy rằng một trong những hoạt động có:

git@github.com:githubAccount/repoName.git

Cái mới không hoạt động có https địa chỉ.

Vui lòng xem ảnh chụp màn hình bên dưới.

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


1

Dòng lệnh Tortoise GIT DOS đã ngừng yêu cầu mật khẩu của tôi sau khi tôi đặt khóa cá nhân và khóa công khai của mình trong C: \ Users \ .ssh dir. Tôi đang sử dụng Windows 7.


1

Có cùng một vấn đề. Trong trường hợp của tôi không có mật khẩu, tôi có thể nhập vào đó. Kết nối được định cấu hình là SSH nhưng không có khóa nào được xác định cho repo.

Kiểm tra: Cấu hình SSH của TortoiseGIT . Những hướng dẫn đó dành cho cloudforge, nhưng đối với các dịch vụ khác, bạn phải làm tương tự, chỉ cần cung cấp khóa công khai của bạn cho nhà cung cấp kho lưu trữ git của bạn.


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.