Các user@host:path/to/repo
định dạng cho Git để sử dụng ssh để đăng nhập vào host
với Tên truy nhập user
. Từ git help clone
:
Một cú pháp giống như scp thay thế cũng có thể được sử dụng với giao thức ssh:
[user@]host.xz:path/to/repo.git/
Phần trước @
tên người dùng và phương thức xác thực (mật khẩu, khóa chung, v.v.) được xác định bởi ssh, không phải Git. Git không có cách nào để chuyển mật khẩu cho ssh, vì ssh thậm chí có thể không sử dụng mật khẩu tùy thuộc vào cấu hình của máy chủ từ xa.
Sử dụng ssh-agent
để tránh gõ mật khẩu mọi lúc
Nếu bạn không muốn nhập mật khẩu ssh mọi lúc, giải pháp điển hình là tạo cặp khóa chung / riêng , đặt khóa chung vào ~/.ssh/authorized_keys
tệp của bạn trên máy chủ từ xa và tải khóa riêng của bạn vào ssh-agent
. Xem thêm Cấu hình Git thông qua SSH để đăng nhập một lần , trang trợ giúp GitHub về passphrase khoá ssh , tài liệu ssh gitolite của , và tài liệu hướng dẫn các phím ssh Heroku của .
Lựa chọn giữa nhiều tài khoản tại GitHub (hoặc Heroku hoặc ...)
Nếu bạn có nhiều tài khoản tại một nơi như GitHub hoặc Heroku, bạn sẽ có nhiều khóa ssh (ít nhất một tài khoản cho mỗi tài khoản). Để chọn tài khoản bạn muốn đăng nhập, bạn phải cho ssh biết khóa riêng nào sẽ sử dụng .
Ví dụ: giả sử bạn có hai tài khoản GitHub: foo
và bar
. Khóa ssh của bạn foo
là ~/.ssh/foo_github_id
và khóa ssh của bạn bar
là ~/.ssh/bar_github_id
. Bạn muốn truy cập git@github.com:foo/foo.git
bằng foo
tài khoản của bạn và git@github.com:bar/bar.git
với bar
tài khoản của bạn . Bạn sẽ thêm những điều sau vào ~/.ssh/config
:
Host gh-foo
Hostname github.com
User git
IdentityFile ~/.ssh/foo_github_id
Host gh-bar
Hostname github.com
User git
IdentityFile ~/.ssh/bar_github_id
Sau đó, bạn sẽ sao chép hai kho lưu trữ như sau:
git clone gh-foo:foo/foo.git # logs in with account foo
git clone gh-bar:bar/bar.git # logs in with account bar
Tránh ssh hoàn toàn
Một số dịch vụ cung cấp quyền truy cập HTTP thay thế cho ssh:
GitHub:
https://username:password@github.com/username/repository.git
Gitorious:
https://username:password@gitorious.org/project/repository.git
Heroku: Xem bài viết hỗ trợ này .
CẢNH BÁO : Thêm mật khẩu của bạn vào URL bản sao sẽ khiến Git lưu trữ mật khẩu văn bản gốc của bạn .git/config
. Để lưu trữ an toàn mật khẩu của bạn khi sử dụng HTTP, hãy sử dụng trình trợ giúp thông tin xác thực. Ví dụ:
git config --global credential.helper cache
git config --global credential.https://github.com.username foo
git clone https://github.com/foo/repository.git
Ở trên sẽ khiến Git yêu cầu mật khẩu của bạn cứ sau 15 phút (theo mặc định). Xem git help credentials
để biết chi tiết.