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.txt2 回目以降は、作業前に仮想環境を有効化するだけで 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 に戻すことができます。

git remote set-url origin https://<ホスティングサービス>/<ユーザー>/<リポジトリ>.gitその後 push します:
git push -u origin mainHTTPS は SSH キー設定が不要なので、PUSHすることができます。
方法 2: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%\.sshid_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
コメント