今回はgithubへのpushに対する記事を書いていこうと思います。
これもまた結構時間がかかりました。
複数のgithubアカウントの切り替えに加え、ssh接続のためのプロキシの設定もあり結構戸惑いました。
以前のrails構築記事同様に備忘録として残したいと思います。
環境
・git 2.26.2
・sshキー作成場所:~/.ssh
#sshキーを作成する
念のためここから書いていきます。
>cd ~/.ssh
>ssh-keygen -t rsa
上記のコマンドをそれぞれ打ってEnter。
するとキーの名前を聞かれるので入力します。(何も入力せずEnterでもOK。)
そのあと二回パスフレーズの入力を求められます。これも必要なら設定して下さい。
今回は2つのgithubアカウント用に2つのsshキーを作成しました。
#sshキーをgithubのアカウントと紐づける
githubアカウントの右上のアイコンを左クリック -> Settings-> SSH and GPG keys
ここのnew SSH keyを押します。
名前はなんでもよさそうですが、一応キーの名前にしておきました。
その下の広いスペースには、C:¥ユーザー¥ユーザ名¥.sshの中にあるsshキー名.pubの中身を貼り付けます。
これは以下のコマンドでできます。
>clip < ~/.ssh/sshキー名.pub(Windows)
>pbcopy < ~/.ssh/sshキー名.pub(Mac)
#configファイルの設定をする
次にconfigファイルの設定を行います。
先ほどのsshキーが保存されている場所(C:¥ユーザー¥ユーザ名¥.ssh)にconfigファイルを作成します。(拡張子なし。すでにある場合は作らなくていい。)
その中に以下のように記述します。
Host github.com
HostName github.com
IdentityFile ~/.ssh/pushしたいsshキー名
User git
ProxyCommand connect.exe -H プロキシのホスト名:ポート %h %p
sshキー名にはpushしたいリポジトリを有するアカウントに関連付けたsshキーを設定します。
push先を変えたい場合はここと後述するremoteリポジトリを変更すればよいです。
最後の一文はプロキシを使用する場合に必要になります。
プロキシのホスト名にはhttp://をつける必要はありません。
#pushしてみる
いよいよpushしてみます。
pushしたいファイルはaddやcommitを済ませていることを想定しています。
まず、以下のコマンドを実行し、ssh接続できているかを確かめます。
>ssh -T git@github.com
パスフレーズを設定した場合は聞かれるので入力します。
Hi! ... みたいなものが出ていれば接続は成功です。
22番ポートが開かない場合ははconfigファイルにPort 443
と指定して443番で接続してみるといいかもしれません。
yes/no
みたいなものが出てきたら、接続していいか聞かれているのでyes
と入力してEnterでOKです。
ではあとはコマンドを載せていきます。
ちなみに、git remote -v
を入力して、originのURLがあるなら、
git remote rm origin
で消しておいてください。
>git remote add origin git@github.com:ユーザ名/リポジトリ名.git
>git push -u origin main
ここでもパスフレーズを聞かれた場合は入力します。
リモートリポジトリのURLを変更したい場合は、
>git remote set-url origin git@github.com:ユーザ名/リポジトリ名.git
を入力してください。
これで1台のPCで、複数のアカウントのリポジトリに切り替えながらpushすることができました。
#最後に
ここまで読んでいただきありがとうございます。
今回は、configのsshキー指定とgitのリモートリポジトリの変更で1台のPCで複数のgithubアカウントのそれぞれのリポジトリにpushする方法を書きました。そしてプロキシ対応も行いました。
画像を貼れていなくて申し訳ないですが、参考になれば幸いです。