Cách cấu hình xử lý mật khẩu tự động cho các lệnh git:


1

Tôi có một tập lệnh xây dựng tự động cho máy chủ xây dựng của mình để xây dựng các ứng dụng Android. Là một phần của quy trình xây dựng này, tôi cần lấy các nguồn hiện tại từ kho lưu trữ để tạo bản phát hành và tạo lệnh đẩy vào cuối quá trình xây dựng để cập nhật kho lưu trữ với các tệp đã được thay đổi trong quá trình xây dựng máy chủ.

Vì vậy, tôi phải xây dựng tập lệnh bash sau:

#!/bin/bash
clear
echo "Start of Pull command"
git pull
echo "End of Pull command"
echo "Start of incrementedRelease build"
gradle incrementedRelease
echo "End of incrementedRelease build"
echo "Start of Commit command"
git commit -a -m "======================== Commit to change Manifest Version ======================"
echo "End of Commit command"
echo "Start of Push command"
git push
echo "End of Push command"

Vấn đề nằm ở lệnh của git pushgit pull, git nhắc tôi nhập mật khẩu.

Bây giờ tôi đã thử chạy lệnh này để tạo một cửa hàng mật khẩu, trước khi nhập mật khẩu cho git.

  sudo git config --global credential.helper store

có và không có sudo lệnh, nhưng lần tới khi tôi chạy tập lệnh, nó vẫn nhắc tôi nhập mật khẩu.

Ai đó có thể cho tôi biết làm thế nào tôi có thể lưu trữ mật khẩu git để tôi không bị nhắc cho mỗi lệnh kéo hoặc đẩy không? tốt nhất là lấy nó từ một tệp và không sử dụng ssh, vì tôi không có quyền truy cập vào máy chủ git để tạo các khóa ở đó ..

CẬP NHẬT: Đây là thư mục tôi có trong thư mục nhà của người dùng:

enter image description here

Cảm ơn trước.

Câu trả lời:


2

Đặt credential.helper tùy chọn cấu hình để store chắc chắn nên làm những gì bạn yêu cầu. Bạn vẫn sẽ phải nhập tên người dùng và mật khẩu của bạn ít nhất một lần cho cửa hàng git-chứng chỉ để lưu trữ nó trong một tập tin ( ~/.git-credentials theo mặc định), nhưng sau đó bạn không cần phải nữa.

Lưu ý rằng tệp lưu trữ thông tin đăng nhập của bạn sẽ không được mã hóa và bất kỳ ai quản lý để đọc tệp đó sẽ nhận được quyền của người dùng trên kho lưu trữ, vì vậy có thể nên thiết lập một người dùng chỉ đọc đặc biệt cho điều này và không thiết lập toàn cầu credential.helper tùy chọn cấu hình để store.

Nếu bạn đang sử dụng giao diện web cho kho lưu trữ của mình ( Github , Cai Xô nhỏ , Gitlab , v.v.), bạn cũng có thể có khả năng (ưa thích, imho) để thiết lập Khóa triển khai SSH thông qua các cài đặt kho lưu trữ để cung cấp quyền truy cập an toàn, chỉ đọc.


Vâng, tôi thấy từ các tài liệu rằng nó nên hoạt động, nhưng vì một số lý do nó không hoạt động. Và tôi không thể tìm thấy một lời giải thích tốt tại sao.
Emil Adz

1
@EmilAdz Tệp ~ / .git-thông tin của bạn như thế nào? Có tồn tại và có quyền tập tin chính xác? Có cái gì trong đó không?
Likeyn

Vì một số lý do tôi không thể tìm thấy tệp này, có lẽ tôi chỉ không hiểu nó nên được đặt ở đâu trong linux.
Emil Adz

@EmilAdz Nó phải nằm trong thư mục chính của người dùng đang chạy các lệnh git, thường là / home / tên người dùng. Cũng lưu ý rằng các tệp bắt đầu bằng dấu "." (dấu chấm) được ẩn.
Likeyn

vui lòng xem bản cập nhật của thư mục tôi có ở nhà / người dùng. Tôi nghĩ rằng thư mục này không có sẵn cho tôi.
Emil Adz

0

Giả sử bạn đang dùng linux: Hướng dẫn này mô tả cách thiết lập kết nối ssh với máy chủ từ xa mà không cần nhập mật khẩu của bạn.

Nếu bạn làm theo các bước này, git sẽ không còn hỏi bạn về thông tin đăng nhập của bạn nữa.

Hơn nữa, bạn sẽ có thể ssh từ dòng lệnh đến máy chủ của bạn mà không cần mật khẩu.


1
Hướng dẫn này mô tả cách kết nối với máy chủ xây dựng của tôi mà không cần bất kỳ mật khẩu nào. Điều tôi cần là thay đổi git mà không cần mật khẩu. Vì vậy, đây không phải là những gì tôi cần, nhưng cảm ơn sự giúp đỡ của bạn
Emil Adz

Tôi nghĩ, đó là những gì bạn cần, vì git cũng sử dụng ssh: Tôi đang sử dụng nó mỗi ngày: "git pull, git đẩy, git cập nhật từ xa, v.v.";)
user258346

Tôi đã cố gắng làm theo hướng dẫn này từ phía máy chủ xây dựng, nhưng vì một số lý do khi tôi cố gắng kết nối với git bằng lệnh "ssh hostname -l username" Tôi gặp lỗi này: fatal: Bạn nghĩ gì về tôi? Một cái vỏ? Kết nối với my_host_name đã đóng.
Emil Adz

Chính xác thì bạn có ý gì với "thử kết nối với git"? Hướng dẫn dự kiến ​​sẽ giải quyết vấn đề sau: Khi nhập "git đẩy" trong một vỏ trên máy cục bộ của bạn để đẩy đến máy chủ (bản dựng) từ xa, bạn sẽ không được yêu cầu nhập mật khẩu nữa. ... Hoặc bạn có cố gắng kết nối từ máy chủ xây dựng của mình với máy cục bộ không (về nguyên tắc cũng hoạt động tốt.
user258346

thật không may, tôi không có quyền truy cập vào máy chủ từ xa và do đó tôi không thể tạo khóa ssh ở đó. Vì vậy, tôi cần tìm một số loại giải pháp mà không cần ssh nhưng với cơ chế người dùng / mật khẩu.
Emil Adz
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.