web-dev-qa-db-ja.com

github:サポートされている認証方法はありません

githubを使用して、過去にラップトップにファイルを正常に追加および同期しました。

最近、私は「PuTTY Fatal Error:Disconnected:No supported authentication methods available」を実行後に取得し始めました:

git pull Origin master(またはPush)

しかしながら

ssh [email protected]は正しい応答を返します:エラー:こんにちはユーザー名!認証に成功しましたが、GitHubはgithub.comへのシェルアクセス接続を提供しません。

githubで掘り下げた後、私はこのmorcelを見つけました:

サポートされている認証方法はありません sshが機能しない場合、sshを話すクライアントを見つけるためにgitが使用する環境変数GIT_SSHに注意する必要があります。 gitインストールは、認証を実行するために(GIT_SSH経由で)plink.exeを使用している可能性があります。その場合、pageant.exeが実行されていることと、github用に作成したキーが読み込まれていることを確認してください。これにより、plink.exeのキーが提供されます。それなしでは、上記のエラーが発生します。

plink.exeまたはpeagant.exeが何であるかわからない.. ssh [email protected]が正しく認証されているように思われるという事実から、ここでの最良の解決策は何か疑問に思う。必要。

91
Sonic Soul

ホームディレクトリに「.profile」という名前のファイルを作成できます。これは私にとってはC:\ Users\[user]です

そのファイル内に、次のコード行を追加します。

GIT_SSH="/usr/bin/ssh.exe"

これにより、GIT_SSH環境変数が設定され、gitに含まれているsshクライアントが使用されます。

Git Bashコマンドラインを起動すると、.profileスクリプトが実行されます。

編集:これは私の.profileです。 gitコマンドプロンプトを最初に起動するときにパスワードを要求し、それ以降はコンピューターを再起動するまでパスワードを記憶します。非常に便利なので、何かをするたびにパスワードを入力し続ける必要はありません。

SSH_ENV="$HOME/.ssh/environment"
GIT_SSH="/usr/bin/ssh.exe"

function start_agent {
echo "Initializing new SSH agent..."
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add;
}

# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
#ps ${SSH_AGENT_PID} doesn't work under cygwin
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
93
Rex Morgan

TortoiseGitを使用する

TortoiseGit>設定...ネットワーク... SSHクライアント:_C:\Program Files\Git\usr\bin\ssh.exe_

場所はさまざまです。 1台のコンピューターではC:\Program Files (x86)\Git\bin\ssh.exeにありました

tortoisegit

23
Joseph Dykstra

「... plink.exeまたはpeagant.exeが何であるかわかりません...」

あなたが尋ねるので:plinkとpageantはPuTTYスイートの一部です。これはLinuxとWindowsをサポートし、Windowsで完全に支配的なSSHの実装です。

[〜#〜] ssh [〜#〜]

Secure Shell(SSH)は、データ通信を保護するための暗号化ネットワークプロトコルです。クライアントサーバーアーキテクチャの安全でないネットワーク上に安全なチャネルを確立し、SSHクライアントアプリケーションをSSHサーバーに接続します。一般的なアプリケーションには、リモートコマンドラインログイン、リモートコマンド実行が含まれますが、SSHを使用してすべてのネットワークサービスを保護できます。

telnetを使用したことがある場合、それはそのようなものですが(より安全です)、Linuxホストのbashシェル(コマンドライン)にリモートでアクセスできます。

PuTTY

PuTTYは、無料のオープンソースのターミナルエミュレータ、シリアルコンソール、およびネットワークファイル転送アプリケーションです。 SCP、SSH、Telnet、rloginなど、いくつかのネットワークプロトコルをサポートしています。

Windowsでは、SSHプロトコル(上記)の下でLinuxホストのコマンドラインにリモートアクセスするための主要なソフトウェアです。 Windowsでは、.exe拡張子は実行可能ファイル用です。したがって、plink.exeおよびpageant.exeに関するこれらのメモは、おそらく Linuxを使用している場合は適用しない です。 PuTTYに含まれるもの

Plink:PuTTYバックエンドへのコマンドラインインターフェイス

Pageant:PuTTY、PSCP、およびPlink用のSSH認証エージェント

から( http://en.wikipedia.org/wiki/Secure_Shell#Key_management

公開鍵がリモートエンドに存在し、一致する秘密鍵がローカルエンドに存在する場合、パスワードを入力する必要がなくなります...セキュリティを強化するために、秘密鍵自体をパスフレーズでロックできます。

そのため、githubはLinuxマシンでホストされ、SSHを使用して接続を保護します。 SSHはパスワードまたはキーで認証し、多くのホスト(github?)はキーでのみ認証します。セットアップは明らかにキーで認証しようとしています。キーとホストは1対1ではありません。同じホストに対して2つのキーを使用したり、同じキーに対して2つのホストを使用したりできるため、管理する必要があります。 Windowsを使用している場合、SSHセッションはおそらくplinkを介してアクセスされ、キーはおそらくPageantによって管理されます。

Pageantを読み込むたびに必要なキーをインポートします。 「キーをインポートする」と書かれたガイドに従って、それが機能するが、現在は機能しないことがわかった場合は、 第9章:認証にPageantを使用する を参照してください。

Windowsを使用している場合の最後のヒント:さまざまなツールによってPuTTYスイートの複数のインスタンスがインストールされている場合があります。たとえば、TortoiseGitは独自にインストールします。

10
woodvi

_GIT_SSH_がTortoiseSVNバージョンの_Plink.exe_を指していたため、この問題が発生しました。 TortoiseGitのバージョンを指すように変更し、cmdを再起動しました。

正確には思い出せませんが、TortoiseSVNバージョンは32ビットバージョンで、TortoiseGitバージョンは64ビット(Program Files (x86)ではなく_Program Files_にあります)だったかもしれません。

_GIT_SSH_ env varを再確認してください。

通常の_cmd.exe_でgitを使用することを好みます(もちろんConsole2で)

8
vaughan

Windows上のTortoiseGitユーザーの場合

もともと、SSHリポジトリURLを使用してGithub/Bitbucketリポジトリのほとんどをセットアップしていました。 TortoiseGitは、アクションごとにパスワードの入力を求めません。

しかし、TortoiseGitをこのように設定することは、常に髪を引っ張って痛みを伴いました。デフォルトのインストールオプションが機能しないように思えたため(2016年の時点でも)、正しくセットアップするのにhoursかかったたびに!.

しかし、TortoiseGitはHTTPSのパスワード管理が改善され、Githubは実際にはHTTPS URLの使用を推奨しています可能な限りです。

SSH URL:[email protected]:User/repo-name.git

HTTPS URL:https://github.com/User/repo-name.git

HTTPSの利点は次のとおりです。

  • SSHキーの管理または生成なし
  • pageant.exeを常に実行する必要はありません(起動ごとにパスワードを要求します)
  • オーストラリアのTortoiseGitを使用すると、HTTPS経由のクローンはSSHの5〜10倍高速であることがわかりました。
6
Simon East

私の問題は、githubユーザー名を使用しようとしていたことです。どうやらGithub (またはGitのことですか?)を使用する場合、キーベース認証を使用する場合は、ユーザー名をgitに設定する必要があります。

ユーザー名が必要な理由がわからない-おそらく、もっと知識のある誰かがそれを説明できますか?

Pageantを使用していて、PCを再起動した後(または、Pageantを閉じて再度開いた後)に質問で説明されているエラーが表示される場合:

エラーは、PageantがGitHub SSHキーをアクティブにロードしていないことが原因である可能性があります。デフォルトでは、Pageantは以前のセッションからキーを自動的にロードしません起動します。

キーをロードするには:

  1. Pageantを開きます。 (Windowsでは、Pageantが実行されている場合、システムトレイにアイコンが表示されます。それをダブルクリックします。)
  2. [キーの追加]ボタンをクリックし、既存のGitHub SSHキーの追加に進みます。

将来この問題を回避するために、Pageantが起動時にキーを自動的にロードするように構成できます。 (キーがパスワードで保護されている場合、Pageantは自動的にパスワードを要求します。)

これを実行する手順(Windowsの起動時に実行されるようにPageantが既に構成されていると仮定):

  1. Windowsの起動時にPageantを実行するためにWindowsが使用するショートカットを見つけます。 (スタートアップフォルダにある場合があります。これは、[スタート]> [実行]> [Shell:startup
  2. ショートカットの[プロパティ]ダイアログで、SSHキーファイルのフルパスとファイル名を[ターゲット]フィールドに追加します。

参照と詳細: http://blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html

4
Jon Schneider

Windows 8で私のために働いた:GIT_SSH変数はplink.exeを指していたが、システム設定でそれをsshバイナリを指すように変更し、それが問題を修正した。 sshへのフルパスを確認するには、次を実行します。

where ssh
2
Dmitriy

Gitバージョン1.8.3.msysgit.0を使用してGithub for Windowsを実行しているWindows 7マシン。システム環境変数GIT_SSHをC:\ Program Files(x86)\ Git\bin\ssh.exeに更新するとうまくいくようです。これにより、OpenShiftのgitリポジトリへの接続に関する問題も修正されました。

2
atorres757

TortoiseGitを使用してGitHubからリポジトリを複製すると、このエラーが発生しました。 [PuTTYキーの読み込み]をクリックし、Gitクローンダイアログでキーファイル(* .pkk)を選択することで修正されました。

1
Zymotik

同じエラー、別の解決策がここに記載されている- WindowsでGitHubに接続する問題、PuTTY経由でも

1
Wayne Bloss

私はこの同じ問題に遭遇しましたが、GIT_SSHソリューションは私にとって一度は機能しているように見えました。コンピューターの再起動後、Git Bashまたはコマンドプロンプトを使用して問題なくプライベートリポジトリのクローンを作成できましたが、SublimeGitプラグインを使用したSublime Text 3ではできなかったため、それが何か別のものであることに気付きました。私の解決策は単純で、実際は @ BlueRaja-Danny Pflughoeft が言及しましたが、何らかの方向性を使用できると考えました;)

基本的に、編集する必要があるのは~/.ssh/configおよびユーザー名がgitであることを確認します。 Githubに特定のSSHキーを使用するように指示することもできます-My ~/.ssh/configファイルは次のようになります。

Host gh
    Hostname github.com
    User git
    IdentityFile ~/.ssh/github_rsa.pub

Githubには特定のキーがありますが、これは1日を通して多くのことを行うためですが、1つしか持っていない場合は通常~/.ssh/id_rsa.pub like Githubがここで説明します

私は誰もが別の解決策を持っていることを知っていますが、修正せずにこの記事に遭遇する可能性のある人のためにここに残しておきます。幸運を!

1
Winter

Git remoteが思っていたものではなかったため、この問題が発生しました(直接sshは機能しましたが、git pullは失敗しました)。

はい、はい、私はそれが愚かな間違いであることを知っていますが、それは起こり、チェックする価値があります。

つかいます git remote -v

0
cowlinator

ここからplinkとページェントを取得できます。 http://www.chiark.greenend.org.uk/~sgtatham/PuTTY/download.html

それらはPuTTYツールです。

0
eabrand