web-dev-qa-db-ja.com

gitlabでのアクセス権の拒否(公開キー)

私の問題は、GitLabからプッシュまたはフェッチできないことです。しかし、私は(HTTP経由またはSSH経由で)クローンを作成できます。プッシュしようとするとこのエラーが出ます。

Permission denied(publickey)fatal:リモートリポジトリから読み込めませんでした

私が見たすべてのスレッドから、これが私がしたことです:

  • 私のコンピュータにSSHキーを設定し、GitLabに公開キーを追加しました
  • ユーザー名とメールアドレスのconfig --globalを実行します。
  • SSHまたはHTTP経由でクローンを作成し、問題が解決するかどうかを確認します
  • Ssh -T [email protected]コマンドを実行してください。

あなたが私の問題を解決する方法について何か洞察力を持っているならば、それは大いに感謝されるでしょう。

私はたくさん探した後にこれを見つけました。それは私にとっては完全にうまくいくでしょう。

  1. Cmdと同じように "Git Bash"に行きます。右クリックして[管理者として実行]をクリックします。
  2. ssh-keygenと入力
  3. Enterを押してください。
  4. キーを特定のディレクトリに保存するように求められます。
  5. Enterを押してください。パスワードを入力するか、パスワードなしで入力するように求められます。
  6. 公開鍵は特定のディレクトリに作成されます。
  7. 今すぐディレクトリに移動して.sshフォルダを開きます。
  8. id_rsa.pubというファイルがあります。メモ帳で開きます。そこからすべてのテキストをコピーしてください。
  9. https://gitlab.com/profile/keys にアクセスしてください。
  10. ここに「キー」テキストフィールドに貼り付けます。
  11. 下の「タイトル」をクリックしてください。自動的にいっぱいになります。
  12. 次に[キーを追加]をクリックします。

今それを打つとそれは確かに動作します。

129

ステップ1:〜/ .ssh /フォルダに設定ファイルを追加しました。

   User git
   Hostname gitlab.com
   IdentityFile ~/.ssh/id_rsa_gitlab
   TCPKeepAlive yes
   IdentitiesOnly yes

ステップ2:Sudoなしでgitリポジトリを複製するだけです。

37
Fedo Peralta

単純な解決策は認証エージェントに秘密鍵を追加することだと思います(あなたの鍵が~/.ssh/id_rsaでない場合)、

ssh-add ~/.ssh/<your private key>

あなたは基本的にssh-agentにそれを引き受けさせます。

さらに、あなたはすることができます 永久にそれを追加します

12
Hussain

Sudo git clone [email protected]:project/somethiing.gitを実行していないことを確認してください。そうしないと、sshはアップロードしたキーの代わりに/root/.sshを検索します~/.ssh/id_rsa

9
rivanov

私の場合は、WSL(Linux for Windows Subsystem)では機能しませんでした。

WSLを起動するときには、

  • ssh-agent_ eval $(ssh-agent -s)を起動します。
  • キーをssh-agentに追加します。ssh-add ~/.ssh/id_rsa
  • プロンプトが表示されたら、パスワードを入力します

今すぐ接続が機能します。
これをssh -T [email protected]でテストすることができます

詳細な説明: WindowsからSSH経由のGitはPermission Deniedを返します

8
TmTron

行うべき手順は、同じエラーを得たが、私はそれを修正しました。 Gitlabはssh-rsaを望んでいるので、以下はrsaのためにsshを実行するためのコードです。

  1. ssh-keygen -o -t rsa -b 4096 -C "[email protected]"

[email protected]はgitlabアカウントのメールアドレスです。

  1. 以下のコードがプロンプトになった後にEnterキーを押すだけで入力を促されます。

    キーを保存するファイルを入力します(/home/yourDesktopName/.ssh/id_rsa)。

  2. 以下のコードがプロンプトになった後、Enterキーを押すだけで再度入力を求められます。

    パスフレーズを入力します(パスフレーズがない場合は空白)。

  3. 最後に入力するようにもう一度プロンプトが表示されますので、以下のコードがプロンプトになった後にEnterキーを押してください。

    同じパスフレーズをもう一度入力してください。

  4. あなたはあなたのssh-rsaが生成することを示すでしょう。

  5. Gitlabアカウントにログインして右のナビゲーションバーに移動すると設定が表示され、左のサイドバーにはsshキーが表示されます。それを入力してください。

  6. 入力を求めているプロンプトの上を見てください、あなたはssh-rsaのパスを取得します。

  7. あなたのSSHフォルダに行き、id_rsa.pubを入手してください。

  8. それを開き、キーを入手してGitlabにコピーペーストしてください。

  9. 以下で確認してください。ssh -T [email protected]

  10. あなたは得るでしょう:Welcome to GitLab, @joy4!

  11. 完了しました。

3

私の場合、それはgitlabの問題ではなく、sshdの設定の問題です。 sshサーバーはユーザーのリストを除いて接続を許可しませんでした。 gitlabにリモート接続しているユーザーgitはそのリストにはありませんでした。だから、何よりもまずこれをチェックしてください。

Sshサーバーの設定は/etc/ssh/sshd_configで確認できます。オプションAllowUsersを含む行がある場合は、それにgitを追加します。

AllowUsers user1 user2 user3 git
3
skotperez

私は同じ問題を抱えていた、私は新しいSSHキーを追加することによってそれを解決しました:

  1. ssh-keygen -t ed25519 -C "[email protected]"
  2. あなたの公開SSH鍵をクリップボードにコピーします(Linuxの場合はxclip -sel clip < ~/.ssh/id_ed25519.pub)。
  3. Gitlabでsettings=>sshキーに行き、新しいキーを通り越します
2
Ahmed AMMOURI

私はdockerでgitlabを動かしています、これは私が私の問題を解決するためにしたことです。

Dockerの内部/ var/log/gitlab/sshd/currentメッセージが複数発生することがわかりました。

認証が拒否されました:ファイルの所有権またはモードが不正です/var/opt/gitlab/.ssh/authorized_keys

その後、そのファイルの所有権を99:usersからgit:usersに変更しました。

chown git:users authorized_keys

2
xab

あなたがLinuxまたはmacoxを使っているのなら、ターミナルでこれを試してください。

ssh-add -l

それが何も返さないならば、これを試してください:

ssh-add

〜/ .ssh/id_rsaにIDを作成する必要があります

再試行後

ssh-add -l

それはあなたのアイデンティティを返さなければならないので、クローンを再試行した後、それはうまくいくはずです

注意:あなたのsshキーをあなたのプロフィールに追加することを忘れないでくださいgitlab

ありがとう

2
rapaelec

主に2つのこと

  1. あなたの.sshフォルダにid_rsa.pubとid_rsa(非公開)鍵がなければなりません(あなたのホームフォルダにあるはずです。鍵がない場合は作成してください)。キーファイルに別の名前を付けてもうまくいきません。

  2. Id_rsaの許可をchmod 400〜/ .ssh/id_rsaに変更します。

2
cherankrish

あなたが複数のgitアカウントを持っていて、違うsshキーが欲しいとき

Sshキーを生成するのと同じ手順に従う必要がありますが、

ssh-keygen -t ed25519 -C "[email protected]" 

保存したいパスを入力してください(例:my-pc/Desktop/.ssh/ed25519)

Gitlabに公開鍵を追加します( gitlabにssh鍵を追加する方法

下記のコマンドを使って新しいsshのアイデンティティを持っています

ssh-add ~/my-pc/Desktop/.ssh/ed25519
1
Srikrushna Pal

端末に行き、再度sshキーを再生成してください。 ssh-keygenと入力します。保存先を尋ねるので、パスを入力します。

その後、公開鍵をgitlabsプラットフォームにコピーします。通常はssh-rsaで始まります。

1
recussive

buntuでgitlabアカウントにSSHキーを追加する方法?

  1. プロジェクトディレクトリでターミナルを開きます。
  2. 「ssh-keygen -o -t rsa -b 4096 -C "your gitlab email"」と入力してEnterキーを押します
  3. 「vim /home/mnbtech/.ssh/id_rsa.pub」と入力してEnterキーを押します(または保存した場所から手動で「id_rsa.pub」を開きます)
  4. SSHキーが表示されます。それらをコピーして

  5. Gitlabアカウントに移動します。

  6. プロフィール画像をクリックし、設定をクリックします
  7. 左側で[SSH-Keys]を選択します
  8. 次にそれらのキーを貼り付けますキーの追加をクリックします

SSH-Keyが追加されます!

(プレビューSSHキーを生成し、アクセス許可が拒否された場合(公開キー)。プレビューsshキーを削除して、新しいsshキーを生成し、端末にgit user.nameとメールを追加します。)

1
Ismail Hossain

この動作を引き起こす可能性のあるもう1つの問題は、2つの可能な%HOME%-locationsを持つセットアップがある場合です。

私は、ドキュメントの一部がローカルに保存され、一部はネットワークドライブに保存されているPCを使用しています。 C:\Users\<MyUserName>\は私の%home%であると考えるアプリケーションもあれば、U:\がホームであると考えるアプリケーションもあります。

ssh-keygenは私の秘密鍵をC:\users\<MyUserName>\の下に置き、ssh -Tssh -vもそこにあることがわかります。

したがって、git clonegit PushなどがU:\のキーを探すことを除いて、すべてが正常に動作するようです。これは失敗するため、前述のエラーが表示されます。

見つけるのに1時間かかりましたが、最終的に解決策は簡単でした。すべてをC:\Users\<MyUserName>\.sshからU:\.sshにコピーしました

1
Emil Bode

gitlab help で解決策を見つけました。

To create a new SSH key pair: 
 1. Open a terminal on Linux or macOS, or Git Bash / WSL on Windows.
 2. Generate a new ED25519 SSH key pair: ssh-keygen -t ed25519 -C "[email protected]"
 2.1 Or, if you want to use RSA: ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
 3. Next, you will be prompted to input a file path to save your SSH key pair to... use the suggested path by pressing Enter
 4. Once the path is decided, you will be prompted to input a password to secure your new SSH key pair. It's a best practice to use a password, but it's not required and you can skip creating it by pressing Enter twice.
 5. Copy your public SSH key to the clipboard by using one of the commands below depending on your Operating System:
        macOS:        pbcopy < ~/.ssh/id_ed25519.pub
        WSL / GNU/Linux (requires the xclip package):      xclip -sel clip < ~/.ssh/id_ed25519.pub
        Git Bash on Windows:      cat ~/.ssh/id_ed25519.pub | clip
 6. Navigating to SSH Keys and pasting your public key in the Key field
 7. Click the Add key button

それがあなたの一部を助けることを願っています!

1
JoeyGutMen

以前は非常に困難でしたが、試してみるとMacとLinuxでsshキーを追加するのがとても簡単になりました。これを行うには、次のようないくつかの手順とコマンドがあります。

  1. システムのターミナルを開き、次のコマンドでプロジェクトディレクトリ内を移動します。
cd 'project directory name'
  1. その端末でコマンドssh-keygenを実行し、キーのrandomartイメージが表示されるまで入力します。

  2. 次に、そのターミナルでもう1つのコマンドを入力します。

cat ~/.ssh/id_rsa.pub

Sshキーが生成されます。キーはssh-rsaで始まり、.localで終わります。

  1. キーをコピーして、Gitlabプロファイルセクションに移動し、ssh keyセクションに移動して貼り付けます。これが機能するAddボタンをクリックします。
0
kumar ujjawal

まあ、私はこれと同じ問題を抱えていたし、@カーンが提案した答えを試した後。ただし、.git/configファイルのOriginのURLをhttpsアドレスに変更するだけで、機能させることができました。 https://gitlab.com/mygitlabusername/mygitproject.git

Ssh経由のアクセスは拒否されているので、httpsを使用しても問題ないはずです。ただし、atリポジトリへのプッシュごとに、ユーザー名とパスワードを要求します。

0
larrytech

私はこのように解決しました。

このコマンドを使用してWindows用のキーを生成しました。

ssh-keygen -t rsa -C "[email protected]" -b 4096

しかし、問題は、このコマンドを実行した後、「キーを保存するファイルを入力してください(/c/Users/xxx/.ssh/id_rsa):」という行がポップされたことです。私の鍵は与えられた場所ではなく私のパスワードに保存されていました。 「git clone」を実行したとき、キーが「/c/Users/xxx/.ssh/id_rsa」の場所にあると想定していましたが、見つからなかったため、エラーが発生していました。

キー生成時に、「file1」と「file1.pub」という2つのファイルが生成されました。私はこれら両方のファイルを

file1 -> id_rsa 

そして

file1.pub -> id_rsa.pub

そして両方を"/c/Users/xxx/.ssh/"の場所に配置しました

0
Sugandha Jain

私のGitLab設定の既知のSSH鍵のリストに私の~/.ssh/id_rsa.pubを追加しました https://gitlab.com/profile/keys 。これで問題は解決しました。 :-)

0
seonghuhn

私はubuntu 18.04を使用していますが、これは実際には私のローカルマシンでの許可の問題でした。読み取り/書き込み権限を自分の.gitフォルダに設定すると問題は解決しました。

0
manian

サイトでTLS/SSLを使用している場合は、git config credential.helper storeを使用してください。これがうまくいくことを願って

0
gmaam

私にとっての問題は、SSH構成ファイルの/etc/ssh/sshd_configUsePAMyesからnoに切り替えたことです。 UsePAM yesを使えば、すべてが完璧に動作します。

0
chevallier