他の点では手付かずのWindows 7 Enterpriseインストールの場合:
編集~/.ssh/config
読む:
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~\.ssh\github.ppk
ssh -vvvT [email protected]
は: http://Pastebin.com/Tu3Fc6nJ を提供します。ページェントに正常に読み込まれたにもかかわらず、パスフレーズの入力を求められていることに注意してください。
私はもう試した: chmod 700 ~/.ssh; chmod 600 ~/.ssh/*
Git Bash内からですが、ls -l
。
以前のWindows 7インストールでこの正確なセットアップが機能していたことに注意してください。私が知る限り、すべてが同じです。
機能するのは、Git Bash内からキーを生成することです。ただし、ページェントにこれらのキーを追加することはできません。これは大きな痛みです。実際、PuTTYによって生成されたキーを使用しようとする試みはすべて成功していないようです。
ログに基づいてこれが機能しない原因についての洞察はありますか?前もって感謝します。
SSH認証用のPuTTYのPlinkアプリケーションを使用してWindowsのGitセットアップを取得するためのステップバイステップガイドをまとめました。
以下に従ってください:
インストール PuTTY.ZipPuTTYダウンロードページ から入手できます。または個別にダウンロードすることもできます。
PuTTY:PuTTY.exe (または [〜#〜] ftp [〜#〜] =)
SSHおよびTelnetクライアント自体。
Plink:plink.exe (または [〜#〜] ftp [〜#〜] =)
PuTTYバックエンドへのコマンドラインインターフェイス。
Pageant:pageant.exe (または [〜#〜] ftp [〜#〜] =)
PuTTY、PSCP、PSFTP、およびPlink用のSSH認証エージェント。
PuTTYgen:puttygen.exe (または [〜#〜] ftp [〜#〜] =)
RSAおよびDSAキー生成ユーティリティ。
RSAおよびPPKキーを生成する
ssh-keygen
_を使用してRSA公開/秘密鍵のペアを生成します。これを行う方法の詳細については、公式の SSHキーの生成 の記事を参照してください。~/.ssh/id_rsa
_(秘密)鍵をインポートします。 Conversions → Import key。~/.ssh/id_rsa.ppk
_としてボタン。これで、次のキーが_~/.ssh
_ディレクトリにあるはずです。
id_rsa
_:プライベート(OpenSSH)RSAキーid_rsa.pub
_:公開(OpenSSH)RSAキーid_rsa.ppk
_:プライベート(PuTTY)キーインストール Git for Windows 。
Plinkの使用を選択していることを確認してください。
注:Gitを既にインストールしている場合は、インストーラーを再度実行して、PlinkをデフォルトのSSHアプリケーションに設定できます。
環境パスを設定します。
次のシステム変数を追加します(まだ設定されていない場合)。
GIT_HOME
_:_C:\Program Files\Git
_GIT_SSH
_:C:\Program Files (x86)\PuTTY\plink.exe
Gitバイナリディレクトリをシステムパスに追加します。
Path
:_%Path%;%GIT_HOME%\bin
_Pageantを開き、_~/.ssh/id_rsa.ppk
_にあるppkキーをロードします。
注:Pageantが起動したら、タスクバーの時間の隣にあるシステムトレイの右側のアイコンをクリックします。
PuTTYを開いて接続し、SSH経由で接続をテストして、サーバーのキーを既知のホストとして追加します。
ホスト名の例:
[email protected]:22
_(またはssh-agent _ssh -Tv [email protected]
_経由)[email protected]:22
_(またはssh-agent _ssh -Tv [email protected]
_経由)Git Bashを起動します。
毎回パスワードを入力しなくても、リモートホストからプッシュおよびプルできるはずです。
スタートアップディレクトリにショートカットを配置して、Windowsアカウントにログインするたびにキーを自動ロードすることができます。
このアイデアは、この質問への回答に触発されました。
_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エクスプローラの起動ディレクトリに移動します。
ユーザー_Startup/
_ディレクトリ(推奨)は次の場所にあります:
_%AppData%\Microsoft\Windows\Start Menu\Programs\Startup
_
すべてのユーザー_Startup/
_ディレクトリは次の場所にあります:
_%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup
_
フォルダ内を右クリックして選択します New → Shortcut
Create Shortcutダイアログで、次の情報を入力します。
"C:\Program Files (x86)\PuTTY\pageant.exe"
Pageant Autoload
_新しいショートカットを右クリックして選択します Properties コンテキストメニューから。
Shortcutタブの下の以下のフィールドを変更します。
"%PROGRAMFILES(x86)%\PuTTY\pageant.exe" id_rsa.ppk
%USERPROFILE%\.ssh
_
ノート:
32ビットのWindows OSを使用している場合は、%PROGRAMFILES(x86)%
ではなく_%PROGRAMFILES%
_環境変数を使用する必要があります。
All Usersスタートアップディレクトリにショートカットを配置した場合は、現在のユーザーが_id_rsa.ppk
_ディレクトリに_~/.ssh
_キーを持っていることを確認してください。そうしないと、キーは自動ロードされません。
そこにあります。次にWindowsプロファイルにログインすると、ページェントプロンプトが表示され、キーのパスワードを入力するよう求められます。キーにパスワードを設定しなかった場合、キーはプロンプトなしで自動的にロードされます。
キーが読み込まれているかどうかわからない場合は、システムトレイのPageantのコンテキストメニューからView Keysを選択して、Pageantの現在のキーを表示します。
PuTTYとOpenSSHの2つの完全に異なるプログラムを混乱させています。
plink
とPageantはPuTTYの一部です。 ssh
コマンドはOpenSSHの一部です。 Gitが使用しているプログラムは不明です。そのためには、%GIT_SSH%
環境変数を確認する必要があります。
プログラムは異なるエージェントプロトコルを使用します。 OpenSSHはPuTTYのPageantを使用できません。独自のssh-agent
があります(残念ながら、Windowsでの使用はやや複雑です)。
PuTTYおよびplink
は、PuTTYのインターフェースで編集可能なセッション設定をレジストリに保存します。 ~/.ssh/
では何も使用していません。このディレクトリはOpenSSHでのみ使用されます。
OpenSSHとPuTTYで使用される秘密鍵の形式は異なります。 OpenSSHでは.ppk
キーを使用できません。 PuTTYgenでキーを生成した場合は、その「エクスポート→OpenSSH」コマンドを使用する必要があります。
$ ssh -vvvT [email protected]
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
...
debug2: key_type_from_name: unknown key type 'PuTTY-User-Key-File-2:'
分かりやすい英語で
debug3:RSA1キーファイル/c/Users/Radu/\.ssh\github.ppkではありません。
debug2:key_type_from_name:不明なキータイプ 'PuTTY-User-Key-File-2
Puttygenはさまざまなキーを構築できるため、GithubはSSH1-RSAを必要としています(?、Iusessh2キーをgithub上のPageantで使用)
追加
これも参照してください デバッグページェントに関する投稿 Githubの問題
>plink.exe -v -agent [email protected]
Looking up Host "github.com"
Connecting to 207.97.227.239 port 22
Server version: SSH-2.0-OpenSSH_5.1p1 Debian-5github2
Using SSH protocol version 2
We claim version: SSH-2.0-PuTTY_Release_0.62
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange with hash SHA-256
Host key fingerprint is:
ssh-rsa 2048 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Pageant is running. Requesting keys.
Pageant has 1 SSH-2 keys
Using username "git".
Trying Pageant key #0
Remote debug message: Forced command: gerve lazybadger
Remote debug message: Port forwarding disabled.
Remote debug message: X11 forwarding disabled.
Remote debug message: Agent forwarding disabled.
Remote debug message: Pty allocation disabled.
Authenticating with public key "github/lazybadger" from agent
Sending Pageant's response
Remote debug message: Forced command: gerve lazybadger
Remote debug message: Port forwarding disabled.
Remote debug message: X11 forwarding disabled.
Remote debug message: Agent forwarding disabled.
Remote debug message: Pty allocation disabled.
Access granted
Opened channel for session
Server refused to allocate pty
Started a Shell/command
Hi lazybadger! You've successfully authenticated, but GitHub does not provide Shell access.
Server sent command exit status 1
Disconnected: All channels closed