見出し画像

【GitHub】LinuxマシンからGitHubにSSH接続を確立する

今回はGCP上に立てたVMにSSHログインして、そこからさらにGitHubに対するSSH接続を確立し、本番環境にソースコードを転送出来るようにします。

※ローカル開発環境(=自分のパソコン)上には既にgitがインストールされていて、GitHubと連携出来ていて、開発リポジトリが作ってある前提です。そこからやりたい人は適宜ググってください。

VMにSSH接続しーました、というところから。

gitインストール

$ sudo apt-get install git-all

sudo は以下のコマンドをroot権限で実行しろよ、と言う命令。GCPコンソールのSSHボタンから接続すると、GCPユーザーでログインしたような感じになるので、ここから先は事ある毎にsudoすることになる。
apt-getできない場合は「Linux git インストール」とかでググるよろし。

$ git --version

で、gitがインストール出来たかを確認。

リポジトリを設定

$ git init
$ git remote add origin https://github.com/REPOSITORY.git

リポジトリのURLはGitHubDesktopのリポジトリ設定で調べるのが一番楽。
(ブラウザで、GitHub上のリポジトリを開いて、Codeタブの中にある緑色のCodeボタンを押す→SSHタブを開いて、SSHアクセス用のアドレスをコピー)

SSH接続を設定(毎回パスワード入れるのを省略)

鍵ペアを作成

$ cd ~/.ssh
$ ssh-keygen -t ed25519 -C ""

ed25519は暗号化の方式なのでそのまま指定する。
実行するとファイル名を聞かれるので任意のファイル名を入力。その後パスワードを求められるので空白のまま2回enterでOK。SSH公開鍵が発行される。

公開鍵を取得

$ cat ~/.ssh/FILE_NAME.pub

FILE_NAMEは先ほど指定した任意のファイル名。
実行すると公開鍵の文字列が表示されるので、ssh-ed2559から始まる文字列全てをコピーしておきます。

続いて、GitHubにブラウザからアクセスして、公開鍵を登録します。
Setting>SSH and GPG keysで、SSHkeysの欄にある「New SSH key」を選択。
適当なタイトル(接続元名とかにすればわかりやすい)を付けて、先ほどの公開鍵をKey欄に登録。

ホストの設定

$ vi ~/.ssh/config

でSSHの設定ファイルを開き、

Host github github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/FILENAME

と入力して保存。(Userは、gitHubのユーザー名ではなく、「git」でOK)

接続確認

$ ssh -T github

で接続確認。最初は

The authenticity of host 'github.com( xxx.xxx.xxx.xxx )' cant't be established.(安全性が確認出来ませんでした)

という警告が出てびっくりしますが、「接続したことないところだけど大丈夫?」ということだそうなのでyesと入力して続行。心配な時は「fingerprint」を入力してフィンガープリントを確認。

You've successfully authenticated, but GitHub does not provide shell access.

と表示されればOK。シェルアクセスはできねぇよと言われてますが、シェルアクセスはしないので問題ないです。

リポジトリをcloneしてみる

ブラウザで、GitHub上のリポジトリを開いて、Codeタブの中にある緑色のCodeボタンを押す→SSHタブを開いて、SSHアクセス用のアドレスをコピー。

$ git clone REPOSITORY_ADDRESS

すればリポジトリがcloneされます。

Pullもしてみる

$ cd REPOSITORY

してクローンしたリポジトリフォルダの中へ移動してから

$ git pull origin master

します。(masterのところは本番ブランチの名前を入れる。mainだったりrereaseだったり)
メインブランチとは別にリリース用のブランチを作っておくのがよさそう。

移動するの忘れてpullすると要らんところに種々のファイルがわーーーって展開されて泣く。

これで本番環境にファイル転送出来るようになりました。やったねー


この記事が気に入ったらサポートをしてみませんか?