Bitbucketでこれまで広く使われていた「アプリパスワード(App Password)」ですが、方針変更に伴い段階的に廃止が進められています。これにより、ある日突然Gitのプッシュやプルができなくなるトラブルが各所で発生しています。
この記事では、発生するエラーの原因と、より安全で今後の変更に振り回されない「SSHキー認証」への移行手順を、初心者にも分かりやすく解説します。
🛑 発生している問題と原因
Git操作(git push や git pull など)をした際に、突然以下のようなエラーが発生して接続が遮断されることがあります。
Bash
remote: CHANGE-3222 - Functionality has been deprecated
remote: App passwords are deprecated and must be replaced with API tokens.
remote: https://developer.atlassian.com/cloud/bitbucket/changelog#CHANGE-3222
fatal: unable to access 'https://bitbucket.org/username/repository.git/':
The requested URL returned error: 410
原因:アプリパスワードの廃止
Bitbucketの仕様変更により、従来のHTTPS+アプリパスワード方式が廃止されました(ステータスコード 410 Gone は「そのURL/機能は恒久的に削除された」ことを意味します)。
この仕様変更はアカウントごとに段階的にロールアウト(適用)されているため、昨日まで動いていたのに今日突然動かなくなるといった事象が発生します。
公式は「APIトークン」への移行を案内していますが、毎回トークンの管理をするよりも、これを機により安全で永続的に使える「SSHキー認証」へ移行するのがおすすめです。
🛠️ 解決策:SSHキー認証への移行手順(全5ステップ)
HTTPS方式から、パスワード入力が不要になるSSHキー認証へ切り替える手順です。
1. SSHキーの生成
まずはローカル環境(自身のPC)のターミナルで、暗号化強度の高い ed25519 形式のSSHキーを作成します。
Bash
ssh-keygen -t ed25519 -C "your-email@example.com"
-
ファイルの保存場所: 何も入力せずそのまま
Enter(デフォルトの~/.ssh/id_ed25519に保存されます)。 -
パスフレーズ: 不要であれば、何も入力せず
Enterを2回押します。
2. 公開キーの確認とコピー
生成されたキーのうち、Bitbucketに登録するための「公開キー(.pub)」の中身を確認します。
Bash
cat ~/.ssh/id_ed25519.pub
画面に出力された内容を1行丸ごとコピーします。以下は出力サンプルのイメージです。
Plaintext
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExamplePublicKeyStringDoNotUseThisKey12345 user@example.com
⚠️ 重要: 最初の
ssh-ed25519から、末尾のメールアドレス(コメント部分)まで、必ずすべてを含めてコピーしてください。メールアドレスは、後から複数のキーを管理する際の識別マークとして役立ちます。
3. Bitbucketへの登録
コピーした公開キーをBitbucket側に登録します。
4. リモートURLの変更
現在ローカルにあるリポジトリの接続先を、HTTPSからSSH用のURLに変更します。
💡 注意: 下記コマンド内の
usernameとrepository.gitの部分は、ご自身のBitbucketのアカウント名(ユーザー名)とリポジトリ名に置き換えて実行してください。
Bash
# 現在の「HTTPSリポジトリURL」を「SSHリポジトリURL」に変更
git remote set-url origin git@bitbucket.org:username/repository.git
# 正しく変更されたか確認
git remote -v
出力結果が git@bitbucket.org:... から始まっていれば変更完了です。
5. 接続テスト
実際に通信ができるか、プルを試してみましょう。
Bash
git pull origin branch-name
初回接続時のみ、以下のように接続を継続するか確認を求められます。
Bash
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'bitbucket.org' (ECDSA) to the list of known hosts.
yes と入力して Enter を押します。無事にプルが成功すれば、すべての移行作業は完了です!
❓ よくある問題と対処法
Q. error: Your local changes to the following files... と出てプルできない
-
原因: ローカルで編集中のファイルと、リモート(Bitbucket上)のファイルで衝突が起きる可能性があるためです。
-
対処法: 変更を一度コミット(
git commit)するか、退避(git stash)させてから再度プルを行ってください。もしローカルの変更が完全に不要な場合は、git checkout .(またはgit reset --hard)で破棄することも可能です。
Q. 複数のBitbucketアカウントを使い分けたい
-
原因: アカウントごとに異なるSSHキーを設定する必要があります。
-
対処法: SSHのコンフィグファイル(
~/.ssh/config)を作成・編集し、Hostごとに利用する秘密鍵(IdentityFile)を明示的に指定するように設定してください。
💡 まとめ
-
Bitbucketのアプリパスワード廃止は段階的に強制適用されています。エラー410が出たら移行のサインです。
-
SSHキー認証に一度切り替えてしまえば、有効期限やパスワード変更に悩まされることなく、永続的かつ安全に利用できるようになります。
-
面倒なパスワード入力の手間も省けるため、開発の利便性もグッと向上します。まだ対応していない方は早めの移行をおすすめします!
