ommo
April 4, 2025, 2:53am
1
NAS上のgitlabをSSHでクローンし、プッシュすると、下記のエラーが出ました。
ssh: connect to host gitlab.com port XX: Network is unreachable
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
これは、GitがGitLabサーバーに接続できないことを示しています。QNAPのコントロールパネルのTelnet/SSHのSSH接続を許可する(管理者だけがリモートログインできます。)にはチェックが入っております。SSH接続するためにQNAPで他に設定するべき部分はありますでしょうか。よろしくお願い致します。
1 Like
@ommo さん
NASにSSHでアクセスはできる状態でしょうか?
SSH周りでいうと、おそらくSSHサーバー側で許可する暗号化種類というものが変わったようで、古いTeraTermでは接続できなくなったことがありました。
SSHのコネクションを疑うのであれば、このあたりを見てみてはいかがでしょうか?
素直に読むと、SSHで接続するためのNAS側ポートが開いてないような気がしますので、QuFirewallなどの設定もご確認いただくのが良いかもしれません。
gitlob.comにアクセスしようとしているようにも見えますが、プッシュ先はどちらになりますでしょうか?
NAS上にgltlab gitサーバーを構築して、クライアントからのクローンはできたけど、プッシュができなかった。というシチュエーションかと理解しています。
プッシュ先を、NASのIPアドレスなどにしてみるのもいいかもしれないと思います。
1 Like
ommo
April 7, 2025, 2:01am
3
@Harinezumi 様
ご返信ありがとうございます。
TeraTermやQuFirewallは使用していませんでした。
ご指摘のプッシュ先をNASのIPアドレスに変更する形で試したところ、クローン時に下記のエラーが出るようになりました。
fatal: could not create work tree dir ‘project’: Permission denied
httpでクローンしても同様のエラーが出ました。
gitlabの接続に関しては下記を参考にしております。
[GitLab プロジェクト作成→commit→push ssh接続 ]
何卒、ご力添えいただけますと幸いです。
※追記
再度ディレクトリを移動し、試したところ下記のような結果となりました。
・git@XXXX:lab/project.git をgitlabのSSHでクローンからそのままコピーした場合
$ git clone git@XXXX:lab/project.git
Cloning into ‘project’…
ssh: Could not resolve hostname XXXX: Name or service not known
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
・git@XXXX:lab/project.git をNASのIPにした場合
$ git clone git@XXXX:lab/project.git
Cloning into ‘project’…
git@XXXX’s password:
ここのパスワードが何のパスワードを求めているのかわかりませんでした。
gitlabとQNAPのパスワードは試しました。
QuLog Centerを見ると、何回かログインに失敗した警告が出ていました。
@ommo さん
エラーメッセージが表示されている場合は、1つずつエラーを解消していく必要があるかと思います。
fatal: could not create work tree dir ‘project’: Permission denied
このメッセージが出ている場合は、gitコマンドでリポジトリにアクセスする際のユーザーが、フォルダの作成権限などないのではないかと思います。
gitサーバー側のパーミッションなど、アクセスしようとしているユーザーに適切な権限が付与されているかどうか?などご確認されるとよいかと思います。
ssh: Could not resolve hostname XXXX: Name or service not known
これは名前解決に失敗していると思います。
nslookupなどでホスト名で名前解決ができるかどうか?など確認されるとよいかと思います。
ローカルでのアクセスであれば、hostsファイルに設定してしまうのもありかもしれません。
$ git clone git@XXXX:lab/project.git
Cloning into ‘project’…
git@XXXX’s password:
これは、gitというユーザーでアクセスしようとしているので、gitレポジトリ側のgitのパスワードかと思います。
いずれにしても、gitリポジトリとクライアントの関係など、一度整理いただいたほうが、ここでアイディアをもらいやすいかと思います。
QNAP上には、gitコマンドはデフォルトでは入ってないと思いますが、dockerなどを使っている感じでしょうか?
1 Like
ommo
April 7, 2025, 3:25am
5
@Harinezumi 様 ご返信ありがとうございます。
gitは下記を参考にDockerを使っています。
@ommo さん
NAS上にdockerでgitサーバーを立てたということですね。なるほどです。
お送りいただいたURLには詳細記載がないようですが、gitのコンテナはNATではなく、ブリッジ設定で外側のネットワークと同じIPアドレスを持たせたほうが良いと思います。
NATの設定だとポートフォワードがかかると思いますので、httpポート、httpsポートなども80, 443以外を指定する必要があり、gitクライアントの設定もめんどくさくなってしまうと思います。
gitlabのコンテナの方でユーザーを作成し、空のプロジェクトを作成します。
手元の環境では、Windowsのgitクライアントから、http://10.27.64.92/harinezumi/myfirstproject に対してcloneすることができました。
ローカルでの運用であればsshでのアクセスは必須ではないと思います。
簡単なところから確認していってみてはいかがでしょうか?
多分、Dockerコンテナをbridgeで外に出せば問題なく動作するような気がします。
1 Like
ommo
April 7, 2025, 7:59am
7
@Harinezumi 様
ご返信ありがとうございます。
上記の方法でhttpでのクローンに成功しました。ありがとうございます。
sshでのアクセスは必須ではないとのことですが、毎回認証情報(ユーザー名とパスワード)を入力する必要がありますでしょうか(クローン時に求められました)。
何卒、ご力添えいただけますと幸いです。
@ommo さん
ひとまず動作したようでよかったです。
毎回認証を必要とするかどうか?はクライアントの設定次第であったり、クライアント依存な部分かと思います。
(ブラウザでNASの設定画面にアクセスするときの"記憶する"のような設定です。)
そこはお手元で確認してみてください。
1 Like