Git pushで「ssh: Could not resolve hostname」エラーが出る原因と解決方法【初心者向け】

Git で push しようとしたとき、このようなエラーが出たことはありませんか?

ssh: Could not resolve hostname <ホスト名>: 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.

これは GitHub に正常につながらないときに出る代表的なエラーです。
この記事では、エラーが起きる原因と、簡単にできる解決方法を紹介します。

目次

事前:環境セットアップ

リモートリポジトリをクローンする場合の例

# 作業したいフォルダへ移動
cd <任意の作業ディレクトリ>

# リモートリポジトリをクローン
git clone <リポジトリのURL>

# クローンしたプロジェクトのフォルダに移動
cd <プロジェクトフォルダ名>

# Python の仮想環境を作成
python -m venv venv

# 仮想環境を有効化
# macOS / Linux の場合:
source venv/bin/activate
# Windows の場合:
# venv\Scripts\activate

# プロジェクトが必要とする依存パッケージをインストール
pip install -r requirements.txt

2 回目以降は、作業前に仮想環境を有効化するだけで OK です。

# プロジェクトフォルダに移動
cd <プロジェクトフォルダ名>

# 仮想環境を有効化
# macOS / Linux の場合:
source venv/bin/activate
# Windows の場合:
# venv\Scripts\activate

原因:リモートURLに設定されたホスト名を SSH が認識できていない

このエラーは、次のような状況で発生します。

Git のリモートURLに設定されているホスト名が、SSH の設定に存在しないため接続できない。

よくある原因

  • 過去にホスト名のエイリアス(別名)設定をしたが、SSH の設定ファイルには存在していない
  • 誤って間違ったホスト名を入力した
  • 何らかの理由でリモートURLが書き換わってしまった

リモートURLを確認

現在のリモート設定を確認するには、次のコマンドを実行します。

git remote -v

もしここに、見覚えのないホスト名 または SSH の設定ファイルに存在しないホスト名
が書かれている場合、今回のエラーの原因になります。

解決方法

方法 1:HTTPS に戻す(初心者向け)

すぐ解決したい場合は、ホスト名のエイリアスの代わりに、正式な Git サービスの URL に戻すことができます。

出典:https://github.com/ リポジトリ > Code > Local > HTTPS
git remote set-url origin https://<ホスティングサービス>/<ユーザー>/<リポジトリ>.git

その後 push します:

git push -u origin main

HTTPS は SSH キー設定が不要なので、PUSHすることができます。

方法 2:SSH で接続したい場合(中級者向け)

出典:出典:https://github.com/ リポジトリ > Code > Local > SSH

正式な SSH URL をリモートに設定します。

git remote set-url origin git@<ホスティングサービス>:<ユーザー>/<リポジトリ>.git

そして、SSH 接続テストを行います:

ssh -T git@<ホスティングサービス>

例)GitHubの場合

ssh -T git@github.com

「認証に成功しました」などのメッセージが出ればOKです。

その後 pushします。

git push -u origin main

トラブルシューティング:複数の GitHub アカウントをSSH 設定で使い分けたい【Windows対応】

複数の GitHub アカウントを使い分ける場合は、SSH鍵をアカウントごとに分けて、SSH 設定で使い分けます。
設定方法については、こちらで記載しています。

現在の鍵の確認

PowerShell / コマンドプロンプトで次のコマンドを実行

dir %USERPROFILE%\.ssh

id_rsa, id_ed25519 などが表示されます。

~/.ssh/config で設定内容の確認

Windows の場合C:\Users\あなたのユーザー名\.ssh\configの例
切り替えたいアカウントのホストを確認します。この場合はgithub.com-subなど

# メインアカウント用
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519
  IdentitiesOnly yes

# サブアカウント用
Host github.com-sub
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa
  IdentitiesOnly yes

github.com-sub は 「別名ホスト」 です
・実際の接続先はどちらも github.com
・ただし使う鍵が IdentityFile で変わります

正式な SSH URL をリモートに設定します。

git remote set-url origin git@<ホスティングサービス>:<ユーザー>/<リポジトリ>.git

例えばサブアカウントの場合は<ホスティングサービス>の値が変更になります。

git remote set-url origin git@github.com-sub:<ユーザー>/<リポジトリ>.git

サブアカウントで認証する場合

※ご自身で設定した値に置き換えてください。

ssh -T git@github.com-sub

以下のようなメッセージが表示されれば成功です。

Hi sub! You've successfully authenticated.

認証が成功したら、pushします。

git push -u origin main

備考

直前のコミットを取り消すコマンド

git reset --soft HEAD~1
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

AIアーティスト | エンジニア | ライター | 最新のAI技術やトレンド、注目のモデル解説、そして実践に役立つ豊富なリソースまで、幅広い内容を記事にしています。フォローしてねヾ(^^)ノ

コメント

コメントする

目次