ちょっと特殊な質問なのですが、git cloneをシェルファイルの中で今まで行ってきていました。
接続先には、公開鍵認証が用いられており、シェルファイルの中ではroot権限で行ってきました。もちろん、~/.sshの中に秘密鍵などを入れて行っていました。
今回、ちょっとした事情で、git cloneを行うときだけ、webadminというユーザーに変更したいと思いました。それで書いたのが下記のラインです。
su -c 'git clone ssh://dev-server.ac.in/~/repository.git html' webadmin
ですが、これではできなかったので、エラーが出ました。
そこで、webadminのホームディレクトリにも、rootの使っている.sshディレクトリをそのままコピーして試してみましたが、結果は同じでした。
下記がエラーの内容です。
Cloning into 'html'... admin@proxyserver: Permission denied (publickey,gssapi-keyex,gssapi-with-mic). kex_exchange_identification: Connection closed by remote host kex_exchange_identification: Connection closed by remote host fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
なお、ユーザーをwebadminに切り替えてから
git clone ssh://dev-server.ac.in/~/repository.git html
を行うと、うまくできるようです。rootの.sshディレクトリの中の鍵一式のコピーはwebadminの.sshディレクトリでも、うまく機能しているようです。
なにか解決方法及びエラー回避策をご存知の方がおられましたらご教示いただけますと幸いです。