Atomユーザーの私がVisual Studio CodeのGitHub連携でハマった話
Webエンジニアを夢見てコードを書くようになってから、7、8年経つだろうか当時流行っていたエディタはAtomエディタ(以降 Atom)であったため、私もそれを使い始めた。
しかし、昨今はどこもかしこもVisual Studio Code(以降 vscode)ユーザーで溢れている。ついに自分も老害化してしまっているのかと、個人プロジェクトなどでvscodeに手を出してみるものの、複数のファイルを開いた状態でファイル切り替えを行うショートカット⌘ + {ページ位置番号}
に慣れきってしまった私はvscodeに馴染めずにいる。
そんな呑気なことをいつまでも言っていられないので、今年はvscodeに本気で乗り換えよう!
GitHub連携
さて、本題です。
乗り換えにあたり、まずはしっかりGitHubのリモートリポジトリへのアクセス権を取得して、vscodeでシームレスなGitHub連携を行いたいものであります。
まずは、vscodeからGitHubにログインを行います。この辺は公式通りにブラウザを経由することで難なくログインに成功しました!
これで、cloneしてきたローカルリポジトリにアクセスすればいやん!
さすが、vscode GitHubと兄弟分なだけあるなぁという感じで利用を開始すると問題が起きました。
vscodeからのpushでPermissionエラー
cloneしてきたリポジトリで編集作業を行い、いざリモートリポジトリにpushしようとした時に以下のエラー。
cloneやssh接続確認をコンソールから実施しても無事接続できることを確認。
vscodeで接続するためのtokenなどが必要なのか...と、Atom利用時の流れを確認して見ました。
Atomからリモートリポジトリへのpush
Atomの場合、GitHubパッケージでエディタからGitHubへのアクセスを行なっていました。
Atomの下部バー「Fetch」等をクリックすることで、sshパスフレーズを聞かれるのでそれを入力することでアクセスが行えていました。
なんだ、vscode全然使えないじゃんとググってみるも、自分と同じような問題を抱えているユーザーはいるようですが、解決策はどれもssh鍵発行による解決策。
鍵はあるんだよなぁと、、、GitHubのPersonal Access Tokensなどを作ってはみるものの、どこに設定していいのかもわからず、何度も何度もGitHubアカウントのログインを繰り返しても解決するはずもなく、時間だけが過ぎていきました。
ssh confg設定を変更することで解決
Permissionエラーと言われているので、sshの認証が原因だろうと頭を切り替えて、ssh configファイルを確認して見ました。
私の環境は、二つのGitHubアカウトをHostを切り替える形で使い分けています。おそらくこの辺が原因ではないかと設定をイジイジしてみました。
Host github.com
HostName github.com
IdentityFile ~/.ssh/id_ed
User git
Port 22
TCPKeepAlive yes
IdentitiesOnly yes
Host github-private
HostName github.com
IdentityFile ~/.ssh/id_ed_private
User git
Port 22
TCPKeepAlive yes
IdentitiesOnly yes
上記のこの設定は、セキュリティ上、アクセス時毎回sshパスフレーズを聞かれるように設定していたため、以下の設定を追加してみることにしました。
AddKeysToAgent yes
UseKeychain yes
...設定を保存して、vscodeのGit同期ボタンクリック...(どうせエラーなんだろう...)
くるくるくる...ぴた。
「おおおお!!!!」
接続できた!
なんとか、.ssh/config
ファイルにパスフレーズを省略することで、vscodeからgit pushできるようになりました!
セキュリティ的にちょっと不安が残りますが、どうやら、vscodeはAtomと違って、エディタがパスフレーズを聞くところまでやってくれないんですかね。
とりあえず、これで使えるようになったのでよかったです。
Discussion