如何为初学者设置 SSH 配置文件
How to set up an SSH config-file for beginners
首先,我对 SSH 还很陌生。
从 我看到了设置 SSH 配置文件的必要性和好处。在进行研究时,我注意到关于 SSH 有很多东西需要了解,而且我还发现我一直在使用 SSH 密钥而不是 SSH 服务器。我一直在使用密钥将我的代码推送到我的托管存储库。
所以现在我的问题是(我正在使用 windows 10):
- 我可以在没有像 openSSH 这样的工具的情况下设置 SSH 配置文件吗?如果可以,我该怎么做?
- 这个配置文件存储在我电脑的什么地方?
默认情况下,您的 %HOME%
将是您的 %USERPROFILE%
要创建新密钥,请确保添加到您的环境变量中:
set GH=C:\path\to\git
set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH%
这样,您将在 Windows 10 上获得所有需要的命令,包括 ssh-keygen
,直接来自任何 CMD 会话(甚至无需打开 git bash
会话)。
要创建新的 SSH 密钥,首先尝试使用不带密码的 SSH 密钥,并确保在 CMD 会话中创建它 with the legacy format(而不是 git bash) :
ssh-keygen -m PEM -t rsa -P "" -f %USERPROFILE%\.ssh\myNewKey
'myNewKey
':没有扩展名;没有'.xxx
'。
(-m PEM
用于生成旧格式,因为并非所有远程服务器都能够理解新的 OPENSSH 格式)
然后添加您的 %USERPROFILE%\.ssh\config
文件,将您的新密钥关联到您的服务(您将在其中注册您的 %USERPROFILE%\.ssh\myNewKey.pub
public 密钥)
有关具体示例,请参阅“”,如:
ssh-keygen -m PEM -t rsa -P "" -f %USERPROFILE%\.ssh\github_key
然后,在%USERPROFILE%\.ssh\config
中:
Host gh
HostName github.com
User git
IdentityFile ~/.ssh/github_key
这样,您可以将 GitHub 存储库的远程 URL 替换为:
gh:<yourGitHubUser>/<yourGitHubRepo>
一般来说,在Windows机器上,SSH配置文件存放在以下位置: /c/Users/PC_USER_NAME/.ssh/
只需按照以下步骤操作(如果您使用的是 Git Bash):
- 转到.ssh 目录
/c/Users/PC_USER_NAME/.ssh/
,单击鼠标右键并选择"Git Bash Here"
- 使用以下命令创建名为 "config" 的文件:
touch config
- 现在使用以下命令打开配置文件:
nano config
- 现在在配置文件中写入以下行
假设您已经为 Github 创建了两个名为 id_rsa_hub
的文件,为 GitLab
创建了两个名为 id_rsa_lab
的文件
# GITHUB
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_hub
# GITLAB
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_lab
首先,我对 SSH 还很陌生。
从
所以现在我的问题是(我正在使用 windows 10):
- 我可以在没有像 openSSH 这样的工具的情况下设置 SSH 配置文件吗?如果可以,我该怎么做?
- 这个配置文件存储在我电脑的什么地方?
默认情况下,您的 %HOME%
将是您的 %USERPROFILE%
要创建新密钥,请确保添加到您的环境变量中:
set GH=C:\path\to\git
set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH%
这样,您将在 Windows 10 上获得所有需要的命令,包括 ssh-keygen
,直接来自任何 CMD 会话(甚至无需打开 git bash
会话)。
要创建新的 SSH 密钥,首先尝试使用不带密码的 SSH 密钥,并确保在 CMD 会话中创建它 with the legacy format(而不是 git bash) :
ssh-keygen -m PEM -t rsa -P "" -f %USERPROFILE%\.ssh\myNewKey
'myNewKey
':没有扩展名;没有'.xxx
'。
(-m PEM
用于生成旧格式,因为并非所有远程服务器都能够理解新的 OPENSSH 格式)
然后添加您的 %USERPROFILE%\.ssh\config
文件,将您的新密钥关联到您的服务(您将在其中注册您的 %USERPROFILE%\.ssh\myNewKey.pub
public 密钥)
有关具体示例,请参阅“
ssh-keygen -m PEM -t rsa -P "" -f %USERPROFILE%\.ssh\github_key
然后,在%USERPROFILE%\.ssh\config
中:
Host gh
HostName github.com
User git
IdentityFile ~/.ssh/github_key
这样,您可以将 GitHub 存储库的远程 URL 替换为:
gh:<yourGitHubUser>/<yourGitHubRepo>
一般来说,在Windows机器上,SSH配置文件存放在以下位置: /c/Users/PC_USER_NAME/.ssh/
只需按照以下步骤操作(如果您使用的是 Git Bash):
- 转到.ssh 目录
/c/Users/PC_USER_NAME/.ssh/
,单击鼠标右键并选择"Git Bash Here" - 使用以下命令创建名为 "config" 的文件:
touch config
- 现在使用以下命令打开配置文件:
nano config
- 现在在配置文件中写入以下行
假设您已经为 Github 创建了两个名为 id_rsa_hub
的文件,为 GitLab
id_rsa_lab
的文件
# GITHUB
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_hub
# GITLAB
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_lab