エラーの内容
VS Codeを開き、設定同期を有効にするをクリックして、GitHubまたはMicrosoftアカウントを選択すると、次のエラーが表示されます:
Turning on Settings Sync failed: Cannot sign in
詳細は何も表示されません。ダイアログが閉じ、設定同期はオフのままになります。
このエラーは単純に見えますが、環境によって原因はさまざまです — 古いトークン、壊れたキーチェーン、プロキシの傍受、LinuxでのSnapサンドボックスなど、さまざまな原因が考えられます。
原因
- キーチェーン/認証情報ストアにアクセスできない(Linuxで最も多い)
- VS Codeがキャッシュした古いまたは破損したOAuthトークン
- ネットワーク/プロキシがOAuthコールバックURLをブロックしている
- ブラウザが認証フローを完了できない(リダイレクトがサイレントに失敗する)
- 認証の途中でVS Code拡張機能ホストがクラッシュした
- 企業のファイアウォールが
vscode://URIスキームをブロックしている
修正方法1:キャッシュされた認証情報を削除する(まずここから)
ほとんどの場合、古いトークンデータが原因です。他の操作を行う前にこれをクリアしてください。
コマンドパレット(Ctrl+Shift+P / Cmd+Shift+P)を開き、次を実行します:
Settings Sync: Reset Extension
次に、すべてのアカウントからサインアウトします:
Accounts: Remove Account
VS Codeを完全に再起動します — ウィンドウの再読み込みではなく完全な再起動が必要です — その後、設定同期の有効化を再試行してください。
修正方法2:キーチェーンのエントリを手動で削除する
まだ解決しない場合、VS CodeがOSの認証情報ストアに破損したエントリを残している可能性があります。
Windows
資格情報マネージャー → Windowsの資格情報を開きます。vscodeまたはGitHubで始まるエントリを探してすべて削除し、再試行してください。
macOS
キーチェーンアクセスを開き、vscodeを検索します。VS CodeまたはGitHubに関するエントリをすべて削除します。またはターミナルから操作することもできます:
security delete-generic-password -s "VS Code" -a "$(whoami)"
注意:キーチェーン内のサービス名は異なる場合があります — このコマンドを実行する前に、キーチェーンアクセスで正確なエントリ名を確認してください。
Linux
Linuxではこの問題が最もよく発生します。VS Codeにはキーリングデーモンが必要です。最小構成のデスクトップやヘッドレス環境では、通常インストールされていません:
# gnome-keyringが未インストールの場合はインストール
sudo apt install gnome-keyring libsecret-1-0 libsecret-tools
# キーリングデーモンを起動(永続化するにはシェルの設定ファイルに追加)
export $(gnome-keyring-daemon --start --components=secrets)
# 実行中か確認
ps aux | grep keyring
ディスプレイのないサーバーやCI環境では、キーリングを完全にスキップします:
code --password-store=basic
エイリアスで永続的に設定します:
alias code='code --password-store=basic'
修正方法3:OAuthブラウザリダイレクトを修正する
認証フローの仕組みを説明します:VS Codeがブラウザを開く → OAuthを承認する → ブラウザがvscode:// URI経由でVS Codeにリダイレクトする。システムがそのURIスキームを処理できない場合、ブラウザはそのまま待機状態になります。VS Codeはトークンを受け取れず、エラーメッセージも表示されません — ただ何も起きません。
Linux(xdg-openが設定されていない場合)
# vscode URIハンドラーを登録
xdg-mime default code-url-handler.desktop x-scheme-handler/vscode
# 確認
xdg-mime query default x-scheme-handler/vscode
# 出力されるべき内容: code-url-handler.desktop
デスクトップファイルが完全に見つからない場合は、公式の.deb/.rpmパッケージからVS Codeを再インストールしてください。SnapはURIハンドラーを壊すことがよくあります — 以下を参照してください。
UbuntuでのSnap版VS Code
Snapのサンドボックスがvscode://リダイレクトを遮断します。代わりに公式のMicrosoftリポジトリに切り替えてください:
sudo snap remove code
# Microsoftリポジトリを追加
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
echo "deb [arch=amd64] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list
sudo apt update && sudo apt install code
修正方法4:プロキシまたはファイアウォールによる認証のブロック
企業のプロキシ環境にいる場合、OAuthコールバックがVS Codeに届く前に傍受される可能性があります。settings.jsonにプロキシを追加してください:
// settings.json内
"http.proxy": "http://your-proxy:port",
"http.proxyStrictSSL": false
また、ファイアウォールルールで以下のドメインをホワイトリストに追加してください:
github.comapi.github.comlogin.microsoftonline.comvscode.devinsiders.vscode.dev
修正方法5:VS Codeの認証状態を完全にリセットする
何も解決しない場合は、ハードリセットを行います。これはローカルの認証トークンと同期メタデータのみを削除します — 実際の設定はクラウドに残ります。
Windows
rmdir /s /q "%APPDATA%\Code\User\sync"
del "%APPDATA%\Code\User\settings.json" # クラウドから再同期しても問題ない場合のみ
macOS
rm -rf "$HOME/Library/Application Support/Code/User/sync"
Linux
rm -rf "$HOME/.config/Code/User/sync"
VS Codeを再起動して再試行してください。
修正の確認
- コマンドパレットを開き → Settings Sync: Show Synced Dataを実行します。最近のエントリを含むタイムラインが表示されるはずです。
- アクティビティバー左下のアカウントバッジを確認します — GitHubまたはMicrosoftのユーザー名が表示されているはずです。
- 任意の設定を変更し、30秒待ってから、別のマシンでVS Codeを開くか
https://vscode.devを確認します。変更が反映されているはずです。
予防策
- Linuxでは、SnapではなくMicrosoftの公式リポジトリからVS Codeをインストールしてください。
- i3、swayなどの最小構成のウィンドウマネージャーを使用している場合は、
gnome-keyring-daemonを自動起動に追加して常に利用可能な状態にしてください。 - VS Codeを常に最新の状態に保ってください。認証フローは定期的に修正されています。
- GitHubトークンのローテーションやOAuthアプリの失効後は、GitHub設定 → アプリケーション → 認証済みOAuthアプリからVS Codeを再認証してください。

