エックスサーバーにSSH接続しGitリポジトリを準備する

昔、備忘録として書いたものが出てきたので、記事にする。
目的はエックスサーバーへSSH接続を行い、Gitリポジトリを配置してエックスサーバーでGitを管理できるようにするというもの。
まずはSSHでエックスーサーバーに接続する手順について書き、続いてSSHでエックスサーバー接続後、Gitリポジトリを準備する手順について書いていく。

エックスサーバーにSSH接続する方法

ターミナルからエックスサーバーに接続する方法について。まずはSSHについて。SSHとは「Secure Shell」の訳で、リモートシェルに特化しており、公開鍵認証の仕組みを用いて、セキュアな通信を実現しています。

OpenSSH

自分がArchLinuxをメインPCと使用しているため、SSHコマンドを使用できるようにする必要があった。
そのため公式パッケージよりOpenSSHをインストールする
Secure Shell – ArchWiki

$ sudo pacman -S openssh

エックスーサーバー側の設定

詳しくは以下のリンクに記載しています。
SSH設定

サーバーパネルからログイン > SSH設定を開く SSHの設定を有効にします。(「ONにする」をクリックしてください)

「公開鍵認証用鍵ペアの生成」タブを選択
パスフレーズを入力、「公開鍵認証用の鍵ペア生成(確認)」をクリック
このパスフレーズは、ターミナルの接続時に使用する
公開鍵認証用の鍵ペア生成(確定)をクリック

サーバーID.keyファイルが自動で生成されてダウンロードが始まります。これは公開鍵認証用の秘密鍵ファイルになります。厳重に保管する必要があります。

PC側の設定

ホームディレクトリに.sshディレクトリを作成し
秘密鍵を「id_rsa」にリネームして配置する
また、パーミッションを変更しておく

$ mkdir ~/.ssh
$ mv サーバーID.key ~/.ssh/id_rsa
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa

接続

$ ssh -l サーバーID -p 10022 サーバーID.xsrv.jp
$ Enter passphrase for key 〜 : 設定時のパスフレーズを入力

これでXServerに接続ができる

Configファイルを作成して簡略化

$ mv ~/Downloads/<サーバーID>.key ~/.ssh

識別名の名前は任意

Host <識別名>
    HostName <ユーザーID>.xsrv.jp
    User <サーバーID>
    //IdentityFile /Users/<Mac User name>/.ssh/<サーバーID>.key
    IdentityFile /home/<Linux User name>/.ssh/<サーバーID>.key
    Port 10022
    TCPKeepAlive yes
$ ssh <識別名>

自分のサーバーにリポジトリの作成を行う

ターミナルからSSH接続ができたら次はサーバーにGitリポジトリを配置していきます。
まずは以下の手順で進めます。

  1. リポジトリディレクトリを作成、(ここにすべてのリポジトリをまとめていれておく)
  2. プロジェクトディレクトリを作成
  3. git init でリポジトリを作成
  4. repos.gitが作成されたら同じ階層にsrcディレクトリを作成(srcフォルダが作業用ディレクトリとなる)
$ mkdir ~/repos
$ mkdir ~/repos/project
$ cd ~/repos/project名
$ git init --bare --shared repos.git
$ mkdir src
$ cd src

次に以下の手順で作業を行います
1. git initを実行
2. readmeファイルを作成して初回コミットをする
3. gitのリモートのリポジトリ設定をおこなう(リモート設定時、パスを合わせること)

$ git init
$ echo "My Project" > README.md
$ git add .
$ git commit -m "Initial commit"
$ git remote add origin ~/repos/project名/repos.git
$ git push origin master 

クローンするときの手順

$ git clone ssh://user@server:10022/home/user/repos/project/repos.git

ssh://ユーザー名@サーバー名:SSHのポート番号/リポジトリのパスでいけます

まとめ

これで自身の借りているサーバーにGitをインストールしてホスティングができるようになりました。ただ、今現在はGithubやGitLabなどのホスティングサービスが充実しているので使用することはなかなかないと思います。
また、GitLabはインストール型も提供しているので、自身の借りているサーバーにインストールすることも可能です。GitLabをインストールして完全プライベートな形で運用するのも一つの手段かもしれません。

関連記事