私の問題は、GitLabからプッシュまたはフェッチできないことです。しかし、私は(HTTP経由またはSSH経由で)クローンを作成できます。プッシュしようとするとこのエラーが出ます。
Permission denied(publickey)fatal:リモートリポジトリから読み込めませんでした
私が見たすべてのスレッドから、これが私がしたことです:
あなたが私の問題を解決する方法について何か洞察力を持っているならば、それは大いに感謝されるでしょう。
私はたくさん探した後にこれを見つけました。それは私にとっては完全にうまくいくでしょう。
ssh-keygen
と入力.ssh
フォルダを開きます。id_rsa.pub
というファイルがあります。メモ帳で開きます。そこからすべてのテキストをコピーしてください。今それを打つとそれは確かに動作します。
ステップ1:〜/ .ssh /フォルダに設定ファイルを追加しました。
User git
Hostname gitlab.com
IdentityFile ~/.ssh/id_rsa_gitlab
TCPKeepAlive yes
IdentitiesOnly yes
ステップ2:Sudoなしでgitリポジトリを複製するだけです。
単純な解決策は認証エージェントに秘密鍵を追加することだと思います(あなたの鍵が~/.ssh/id_rsa
でない場合)、
ssh-add ~/.ssh/<your private key>
あなたは基本的にssh-agent
にそれを引き受けさせます。
さらに、あなたはすることができます 永久にそれを追加します 。
Sudo git clone [email protected]:project/somethiing.git
を実行していないことを確認してください。そうしないと、sshはアップロードしたキーの代わりに/root/.ssh
を検索します~/.ssh/id_rsa
私の場合は、WSL(Linux for Windows Subsystem)では機能しませんでした。
WSLを起動するときには、
eval $(ssh-agent -s)
を起動します。ssh-add ~/.ssh/id_rsa
今すぐ接続が機能します。
これをssh -T [email protected]
でテストすることができます
行うべき手順は、同じエラーを得たが、私はそれを修正しました。 Gitlabはssh-rsaを望んでいるので、以下はrsaのためにsshを実行するためのコードです。
ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
[email protected]はgitlabアカウントのメールアドレスです。
以下のコードがプロンプトになった後にEnterキーを押すだけで入力を促されます。
キーを保存するファイルを入力します(/home/yourDesktopName/.ssh/id_rsa)。
以下のコードがプロンプトになった後、Enterキーを押すだけで再度入力を求められます。
パスフレーズを入力します(パスフレーズがない場合は空白)。
最後に入力するようにもう一度プロンプトが表示されますので、以下のコードがプロンプトになった後にEnterキーを押してください。
同じパスフレーズをもう一度入力してください。
あなたはあなたのssh-rsaが生成することを示すでしょう。
Gitlabアカウントにログインして右のナビゲーションバーに移動すると設定が表示され、左のサイドバーにはsshキーが表示されます。それを入力してください。
入力を求めているプロンプトの上を見てください、あなたはssh-rsaのパスを取得します。
あなたのSSHフォルダに行き、id_rsa.pubを入手してください。
それを開き、キーを入手してGitlabにコピーペーストしてください。
以下で確認してください。ssh -T [email protected]
あなたは得るでしょう:Welcome to GitLab, @joy4!
完了しました。
私の場合、それはgitlabの問題ではなく、sshdの設定の問題です。 sshサーバーはユーザーのリストを除いて接続を許可しませんでした。 gitlabにリモート接続しているユーザーgitはそのリストにはありませんでした。だから、何よりもまずこれをチェックしてください。
Sshサーバーの設定は/etc/ssh/sshd_config
で確認できます。オプションAllowUsers
を含む行がある場合は、それにgitを追加します。
AllowUsers user1 user2 user3 git
私は同じ問題を抱えていた、私は新しいSSHキーを追加することによってそれを解決しました:
ssh-keygen -t ed25519 -C "[email protected]"
xclip -sel clip < ~/.ssh/id_ed25519.pub
)。settings=>ssh
キーに行き、新しいキーを通り越します私はdockerでgitlabを動かしています、これは私が私の問題を解決するためにしたことです。
Dockerの内部/ var/log/gitlab/sshd/currentメッセージが複数発生することがわかりました。
認証が拒否されました:ファイルの所有権またはモードが不正です/var/opt/gitlab/.ssh/authorized_keys
その後、そのファイルの所有権を99:usersからgit:usersに変更しました。
chown git:users authorized_keys
あなたがLinuxまたはmacoxを使っているのなら、ターミナルでこれを試してください。
ssh-add -l
それが何も返さないならば、これを試してください:
ssh-add
〜/ .ssh/id_rsaにIDを作成する必要があります
再試行後
ssh-add -l
それはあなたのアイデンティティを返さなければならないので、クローンを再試行した後、それはうまくいくはずです
注意:あなたのsshキーをあなたのプロフィールに追加することを忘れないでくださいgitlab
ありがとう
主に2つのこと
あなたの.sshフォルダにid_rsa.pubとid_rsa(非公開)鍵がなければなりません(あなたのホームフォルダにあるはずです。鍵がない場合は作成してください)。キーファイルに別の名前を付けてもうまくいきません。
Id_rsaの許可をchmod 400〜/ .ssh/id_rsaに変更します。
あなたが複数の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
端末に行き、再度sshキーを再生成してください。 ssh-keygen
と入力します。保存先を尋ねるので、パスを入力します。
その後、公開鍵をgitlabsプラットフォームにコピーします。通常はssh-rsaで始まります。
buntuでgitlabアカウントにSSHキーを追加する方法?
SSHキーが表示されます。それらをコピーして
Gitlabアカウントに移動します。
SSH-Keyが追加されます!
(プレビューSSHキーを生成し、アクセス許可が拒否された場合(公開キー)。プレビューsshキーを削除して、新しいsshキーを生成し、端末にgit user.nameとメールを追加します。)
この動作を引き起こす可能性のあるもう1つの問題は、2つの可能な%HOME%-locationsを持つセットアップがある場合です。
私は、ドキュメントの一部がローカルに保存され、一部はネットワークドライブに保存されているPCを使用しています。 C:\Users\<MyUserName>\
は私の%home%
であると考えるアプリケーションもあれば、U:\
がホームであると考えるアプリケーションもあります。
ssh-keygen
は私の秘密鍵をC:\users\<MyUserName>\
の下に置き、ssh -T
とssh -v
もそこにあることがわかります。
したがって、git clone
、git Push
などがU:\
のキーを探すことを除いて、すべてが正常に動作するようです。これは失敗するため、前述のエラーが表示されます。
見つけるのに1時間かかりましたが、最終的に解決策は簡単でした。すべてをC:\Users\<MyUserName>\.ssh
からU:\.ssh
にコピーしました
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
それがあなたの一部を助けることを願っています!
以前は非常に困難でしたが、試してみるとMacとLinuxでsshキーを追加するのがとても簡単になりました。これを行うには、次のようないくつかの手順とコマンドがあります。
cd 'project directory name'
その端末でコマンドssh-keygen
を実行し、キーのrandomartイメージが表示されるまで入力します。
次に、そのターミナルでもう1つのコマンドを入力します。
cat ~/.ssh/id_rsa.pub
Sshキーが生成されます。キーはssh-rsa
で始まり、.local
で終わります。
ssh key
セクションに移動して貼り付けます。これが機能するAdd
ボタンをクリックします。まあ、私はこれと同じ問題を抱えていたし、@カーンが提案した答えを試した後。ただし、.git/configファイルのOriginのURLをhttpsアドレスに変更するだけで、機能させることができました。 https://gitlab.com/mygitlabusername/mygitproject.git
Ssh経由のアクセスは拒否されているので、httpsを使用しても問題ないはずです。ただし、atリポジトリへのプッシュごとに、ユーザー名とパスワードを要求します。
私はこのように解決しました。
このコマンドを使用して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/"
の場所に配置しました
私のGitLab設定の既知のSSH鍵のリストに私の~/.ssh/id_rsa.pub
を追加しました https://gitlab.com/profile/keys 。これで問題は解決しました。 :-)
私はubuntu 18.04を使用していますが、これは実際には私のローカルマシンでの許可の問題でした。読み取り/書き込み権限を自分の.gitフォルダに設定すると問題は解決しました。
サイトでTLS/SSLを使用している場合は、git config credential.helper store
を使用してください。これがうまくいくことを願って
私にとっての問題は、SSH構成ファイルの/etc/ssh/sshd_config
でUsePAM
をyes
からno
に切り替えたことです。 UsePAM yes
を使えば、すべてが完璧に動作します。