「GitHub」タグアーカイブ

GitHubでPushした際に「git-receive-pack not permitted」とエラーが発生した際の対処法

GitHubで自分のリポジトリにPushしようとしたところ、「git-receive-pack not permitted」というエラーが発生した。(Eclipseからやってます)

エラーの画面ショット

とある記事では、「Gitのパスワードが間違っているので、Eclipseのセキュアストレージを一旦削除する」というのがあったが、これでも解決せず。

散々探した結果、GitHubの公式ブログに見つけました!なんと、2020/12/15の記事で「Token authentication requirements for Git operations」がありました。
https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/

つまり、Gitの操作にはトークン認証が必須になるよという意味でした。実際、トークンを作成してPushしたところ問題なく操作できました。

私の場合は、Cloneするときには、Githubのアカウントとパスワードをセットしていたため、同じ認証情報がPushの時にも使われてエラーになったました。

トークンの作成方法

① GitHubにログインして、アイコン > Settingsを開く。

②画面下部の方にある、Developer Settingsを開く。

③Personal access tokenを開く。

④Generate new tokenを開く。

④トークンの名前と有効期限をセットする。

⑤アクセスを許可するスコープをセットして、画面下部のGenerate Tokenを押下する。

⑥そうすると、トークンが作成された画面上に表示されるためメモしておく(このタイミングでしか見れない)

⑦アクセストークンをパスワードにセットして使う。↓例

なお、英語でよければTokenの作成方法について公式の記事があります。
https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token

Eclipseの認証情報のクリア方法

私のようにEclipseで認証情報を保存してしまった場合は、以下の方法でクリアできます。
設定 > 一般 > セキュリティー > セキュア・ストレージ > 内容 > [デフォルト・セキュア・ストレージ] > GIT > http・・・・(以下画面参照)
に移動して削除を押下します。

すると再起動を求められるので再起動します。再度Pushするときに認証情報を求められるので、その時にパスワードにTokenを使いましょう。

古いバージョンのEclipseであれば、以下の記事が役に立つかもです。
https://hacknote.jp/archives/6690/

いやー、自分が使っているサービスの公式ブログはたまに読んでおかないとだめだ。(;´д`)


Eclipse EGit でGitHubにSSH接続する

これまでSVN一筋の開発現場で働いてきたが、ついにGitを覚えなくてはならなくなってしまった(やっとかよ。。。)

GitHub EnterpriseとEclipseでJavaの開発をすることになったが、作業現場の都合上、HTTPS接続ができないため、SSH接続でcloneした。その時の手順メモ。

GitHubのアカウントはあらかじめ作成しておきましょう。
https://github.com/

Step1. EclipseにSSHの設定を行う

Eclipseのウィンドウメニュー > 設定を開きます。
一般 > ネットワーク接続 > SSH2を開く。

以下のような画面が表示されるので、「RSA鍵の生成」を押下します。表示された「ssh-ras・・・・」という文字列は公開鍵です。後で利用します。

 

「秘密鍵の保存」を押下します。以下のようなダイアログが表示されます。秘密鍵と公開鍵の保存先が表示されています。

次に「キー交換方法」のタブを表示して、下図赤枠のチェックを外して、保存します。(GitHub側がこのキー交換方法をサポートしなくなったらしい)

Step2. GitHubに公開鍵を登録する

Githubにログインします。(https://github.com/

アイコンからSettingsを選択する。

Personal settings > SSH and GPG keysの画面で下図赤枠の「New SSH key」を選択する。

Keyのところに「ssh-ras・・」で始まる公開鍵の文字列を貼り付けて、「Add SSH key」を押下する。(Titleは特に何も入れなくてよい)

GitHubのパスワードを問われるので、入力します。

Step3. Eclipse EGitでリポジトリをcloneする

例として、jqueryのリポジトリをクローンします。こちらのURLにアクセスします。
https://github.com/jquery/jquery

緑色の「Clone or download」を押下すると、CloneするためのURLが表示されます。今回は、SSHで接続するので、「Use SSH」を選択します。

下図のようにSSH用のURLが表示されるので、コピーします。

Eclipseに戻って、パースペクティブをGitに切り替えます。

赤枠の「Gitリポジトリーのクローン」を選択します。

GitHubでコピーしたURLをURIの箇所に貼り付けます。すると、ホストとリポジトリー・パスは自動で反映されます。プロトコルは「ssh」。ユーザは「git」を入力します。パスワードを未入力のままでOKです。

ブランチの一覧が表示されるので、cloneしたいブランチにチェックを入れて、次へを押下。

完了を押下して、完了!!!

jqueryは結構大きいので、cloneするのも結構時間かかります。

終わると↓こんな感じ!

…((((*・o・)ノ Go Go♪.