PS: Các hướng dẫn này nằm trong ngữ cảnh của Bash shell được mở trong Windows 10 Linux Subystem và không đề cập đến các khóa SSH liên kết được tạo trong Windows với Bash trên Ubuntu trên Windows
1) Cập nhật .bashrc của bạn bằng cách thêm vào sau trong đó
# Set up ssh-agent
SSH_ENV="$HOME/.ssh/environment"
function start_agent {
echo "Initializing new SSH agent..."
touch $SSH_ENV
chmod 600 "${SSH_ENV}"
/usr/bin/ssh-agent | sed 's/^echo/#echo/' >> "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add
}
# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
kill -0 $SSH_AGENT_PID 2>/dev/null || {
start_agent
}
else
start_agent
fi
2) Sau đó chạy $ source ~/.bashrc
để tải lại cấu hình của bạn.
Các bước trên đã được thực hiện từ https://github.com/abergs/ubfoxonwindows#2-start-an-bash-ssh-agent-on-launch
3) Tạo tập tin cấu hình SSH, nếu không có. Sử dụng lệnh sau để tạo một cái mới:.ssh$ touch config
4) Thêm vào sau ~/.ssh/config
Host github.com-<YOUR_GITHUB_USERNAME>
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_work_gmail # path to your private key
AddKeysToAgent yes
Host csexperimental.abc.com
IdentityFile ~/.ssh/id_work_gmail # path to your private key
AddKeysToAgent yes
<More hosts and github configs can be added in similar manner mentioned above>
5) Thêm khóa của bạn vào tác nhân SSH bằng lệnh $ ssh-add ~/.ssh/id_work_gmail
và sau đó bạn sẽ có thể kết nối với tài khoản github hoặc máy chủ từ xa bằng ssh. Ví dụ: trong bối cảnh của các ví dụ mã ở trên:
$ ssh github.com-<YOUR_GITHUB_USERNAME>
hoặc là
$ ssh <USER>@csexperimental.abc.com
Việc thêm khóa này vào tác nhân SSH chỉ được yêu cầu thực hiện một lần.
6) Bây giờ hãy đăng xuất phiên Bash của bạn trên Hệ thống con Windows Linux, tức là thoát lại tất cả các bàn điều khiển Bash và khởi động lại bàn điều khiển mới và thử SSH vào Máy chủ Github của bạn hoặc máy chủ khác như được định cấu hình trong tệp cấu hình SSH và nó sẽ hoạt động mà không cần thêm bất kỳ các bước.
Ghi chú:
Cảm ơn.
/my/ssh/location/
với một cái gì đó như thế/c/Users/Foobar/.ssh/
nào?