我整理了一个分步指南,使用PuTTY的Plink应用程序进行SSH身份验证来获取Windows的Git设置。
请按照以下步骤操作:
设定
安装在PuTTY下载页面上可用的putty.zip,或者您可以单独下载。
生成RSA和PPK密钥
- 使用Git Bash,用于
ssh-keygen
生成一对RSA公钥/私钥。有关如何执行此操作的更多信息,请参见官方的“ 生成SSH密钥”文章。
- 在PuTTYgen中,
~/.ssh/id_rsa
通过Conversions→ 导入您现有的(私有)密钥Import key。
- 通过Save private key按钮将导入的密钥另存为
~/.ssh/id_rsa.ppk
。
您现在应该在~/.ssh
目录中具有以下键:
id_rsa
:专用(OpenSSH)RSA密钥
id_rsa.pub
:公用(OpenSSH)RSA密钥
id_rsa.ppk
:私钥(PuTTY)
安装Windows版Git。
确保选择使用Plink。
注意:如果您已经安装了Git,则可以再次运行安装程序并将Plink设置为默认的SSH应用程序。
设置您的环境路径。
- 在“ 控制面板”中,导航到“系统”视图。
- 选择高级系统设置。
- 在“ 系统属性”窗口中,单击“ 高级”选项卡。
- 点击Environment variables…。
添加以下系统变量(如果尚未设置):
GIT_HOME
: C:\Program Files\Git
GIT_SSH
: C:\Program Files (x86)\PuTTY\plink.exe
将Git二进制目录追加到系统路径。
Path
: %Path%;%GIT_HOME%\bin
打开Pageant并加载位于的ppk密钥~/.ssh/id_rsa.ppk
。
注意: Pageant启动后,您可以在右侧时间旁边的任务栏中的系统托盘中单击其图标。
打开Putty并连接以通过SSH测试您的连接,并将服务器的密钥添加为已知主机。
主机名示例:
- GitHub:(
git@github.com:22
或通过ssh-agent ssh -Tv git@github.com
)
- BitBucket :(
git@bitbucket.org:22
或通过ssh-agent ssh -Tv git@bitbucket.org
)
启动Git Bash。
您应该能够从远程主机进行推入和拉出,而无需每次都输入密码。
捷径
您可以在启动目录中放置一个快捷方式,以在每次登录Windows帐户时自动加载密钥。
通过批处理脚本
这个想法的灵感来自对这个问题的答案:
超级用户:如何从CMD制作快捷方式?。
REM |==================================================================|
REM | Pageant Autoload.bat |
REM | |
REM | This script creates a shortcut for auto-loading a PPK (key) in |
REM | Pageant by writing a temporary VB script and executing it. The |
REM | following information below is added to the shortcut. |
REM | |
REM | Filename : Pageant Autoload |
REM | Target : pageant.exe |
REM | Arguments : id_rsa.ppk |
REM | Start in : ~/.ssh |
REM |==================================================================|
@echo off
REM |==================================================================|
REM | Global Values - Do not touch these! |
REM |==================================================================|
SET VBSCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
SET STARTUP_DIR=Microsoft\Windows\Start Menu\Programs\Startup
SET STARTUP_USER_DIR=%APPDATA%\%STARTUP_DIR%
SET STARTUP_ALL_USERS_DIR=%PROGRAMDATA%\%STARTUP_DIR% REM Alternative
REM |==================================================================|
REM | Shortcut Values - You can change these to whatever you want. |
REM |==================================================================|
SET FILENAME=Pageant Autoload.lnk
SET TARGET=%PROGRAMFILES(x86)%\PuTTY\pageant.exe
SET ARGUMENTS=id_rsa.ppk
SET START_IN=%%USERPROFILE%%\.ssh
SET DESCRIPTION=Autoload PuTTY key with Pageant on startup (Ctrl+Alt+S)
SET HOTKEY=CTRL+ALT+S
REM |==================================================================|
REM | Write a new VB script, on the fly; execute and delete it. |
REM |==================================================================|
ECHO Set oWS = WScript.CreateObject("WScript.Shell") >> %VBSCRIPT%
ECHO sLinkFile = "%STARTUP_USER_DIR%\%FILENAME%" >> %VBSCRIPT%
ECHO Set oLink = oWS.CreateShortcut(sLinkFile) >> %VBSCRIPT%
ECHO oLink.TargetPath = "%TARGET%" >> %VBSCRIPT%
ECHO oLink.Arguments = "%ARGUMENTS%" >> %VBSCRIPT%
ECHO oLink.WorkingDirectory = "%START_IN%" >> %VBSCRIPT%
ECHO oLink.Description = "%DESCRIPTION%" >> %VBSCRIPT%
ECHO oLink.HotKey = "%HOTKEY%" >> %VBSCRIPT%
ECHO oLink.Save >> %VBSCRIPT%
CScript //Nologo %VBSCRIPT%
DEL %VBSCRIPT% /f /q
通过Windows资源管理器
导航到Windows资源管理器中的启动目录。
在文件夹内右键单击,然后选择New→Shortcut
在“ 创建快捷方式”对话框中,输入以下信息。
- 位置:
"C:\Program Files (x86)\PuTTY\pageant.exe"
- 名称:
Pageant Autoload
右键单击新的快捷方式,然后Properties从上下文菜单中选择。
在“ 快捷方式”选项卡下修改以下字段:
- 目标:
"%PROGRAMFILES(x86)%\PuTTY\pageant.exe" id_rsa.ppk
- 开始于:
%USERPROFILE%\.ssh
笔记:
如果您使用的是32位Windows操作系统,则应使用%PROGRAMFILES%
环境变量而不是%PROGRAMFILES(x86)%
。
如果将快捷方式放置在“所有用户”启动目录中,请确保当前用户id_rsa.ppk
在其~/.ssh
目录中具有密钥,否则该密钥将不会自动加载。
结束语
你有它。下次登录Windows配置文件时,将出现一个Pageant提示符,要求您输入密钥的密码。如果未在密钥上设置密码,则应该自动加载密钥,而不会出现提示。
如果不确定是否已加载密钥,请从系统托盘中的Pageant的上下文菜单中选择“ 查看密钥”,以查看 Pageant中的当前密钥。