私は3台のサーバー(Ubuntu 16.04 2台、Mac Mini 1台)とMacbookを複数持っています。
1つのサーバーUbuntuはgitlab用で、もう1つは内部サイトサーバーです。 Mac MiniはCIを実行しています。
最近、gitlabサーバーは他のgitlabサーバーに置き換えられました。 (交換したハードウェア、同じIPアドレスとホスト名、新しいソフトウェア、新しいSSHキー、およびその他のすべてのハードウェア(他のサーバーとラップトップ)は、以前と同様にSSHキーを使用します。)
すべてのMacBookは、サーバー上のユーザーのユーザー名/パスワードを使用してSSHを介してサーバーに接続でき、Gitを使用して公開鍵を使用してGitサーバーを介して複製、プッシュなどを行うことができます。
サイトサーバーは公開鍵を介してSSHを介してgitサーバーに接続できますが、ウェルカムメッセージが表示されたら接続は終了します。サイトサーバーは公開鍵でgitを使用することはできません。 Gitがパスワードを求めるプロンプトを表示せず、しばらく持続し、ユーザーのドキュメントディレクトリでテストを使用するときにのみ機能し始める公開鍵として機能しない限り、公開鍵と一緒にgitを使用することはできません. git BreaksのCloneディレクトリに再度追加します/var/www
(偶然の一致であり、2回だけ機能しました)。
CIとgitサーバーの接続に問題はありません。
ssh -v を使用すると、ssh が正しい公開鍵を使用していることが出力に表示されます。
したがって、サイトサーバーで次のコマンドを実行します。
ssh [email protected]
接続してから切断する
git clone [email protected]:somerepo.git
gitユーザーにパスワードを尋ねてください。
サイトサーバーには、gitlabにSSHキーを使用して登録されたユーザーがいます。
複数の呼び出しの出力例:https://pastebin.com/QH0AntK7
答え1
私は同じ問題を偶然発見しました。問題は、git
ユーザーのホームディレクトリからrootとして何かをしていたため、認証されたSSHキーファイルを読み取れないことでした。
修正は以下を実行することです。
$ chown -R git:git /home/git/.ssh
答え2
最初にテストする必要があるのは、サイトサーバーからgitサーバーへのキーベースのSSHが機能していることです。あなたの説明によるとそうではありません。 SSHを実行する前に、サイトサーバーにユーザーの公開鍵がありますかcat
?git
~/.ssh/authoried_keys
答え3
@LazyBadgerのログを生成した後、別のSSHキーを使用しているため、sudoで実行したときにのみ失敗することに気づきました。
GitサーバーのサイトサーバーアカウントにルートSSHキーを含めると、これが機能します。
答え4
OPは解決策を見つけましたが、これが起こる可能性がある他の方法のために困難に直面しています。
接続はssh
成功しますが、またはでgit fetch
設定した場合は次のようになります(キー名が変更されました)。sshcommand
.git/config
~/.gitconfig
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
sshcommand = ssh -i /home/user/.ssh/repo_deploy
[remote "origin"]
...
ssh-copy-id
私はコピーする/home/user/.ssh/id_rsa
のではなくコピーするのに慣れているので、/home/user/.ssh/repo_deploy
私の結果はOPの結果と非常によく似ています。