あまブロ

UnityとかWebプログラミングとか

さくらレンタルにgitリポジトリを作成してsshアクセス

さくらレンタルサーバのスタンダードプランの容量は100GB。
git管理するには十分だろうということで、gitのリポジトリを作ったので手順をメモしておきます。
環境はMacです。

いちいちパスワードを聞かれたら面倒なのでsshの公開鍵認証も同時に設定していきます。

1. 公開鍵を作成する

秘密鍵と公開鍵のペア(id_rsaとid_rsa.pub)を作成していない場合は作成しておきましょう。
Git - SSH 公開鍵の作成

 

2. 公開鍵をサーバに登録する

/home/[ホスト名]/.ssh/authorized_keys

というファイルにid_rsa.pubの内容をコピーすることで公開鍵認証が可能になります。

最初は無いはずなので、id_rsa.pubをauthorized_keysにリネームして配置でOKです。
お使いのFTPソフト等で転送しましょう。

複数人登録する場合は、このauthorized_keysに追記していきます。

ssh-rsa AAAA〜
ssh-rsa BBBB〜
ssh-rsa CCCC〜

 

3. sshアクセスでサーバにログインする

正しく公開鍵が登録できると、sshアクセスが可能になります。
@より前にユーザ名を指定する必要がある点に注意です。ホスト名と同じのはず。

ssh [ユーザ名]@[ホスト名].sakura.ne.jp  
Welcome to FreeBSD!

%

こんな感じの表示が出ればログイン成功です。
 

(2016-09-29追記) authorized_keysのパーミッションを設定する

設定していないとログインの際にパスワードを聞かれます。
聞かれたら、サーバのパスワードを入力すればログイン出来ます。

パーミッションは読み書き可の600を設定します。

chmod 600 /home/[ホスト名]/.ssh/authorized_keys

 

省略形でsshアクセス

長いドメインを入力するのが面倒という場合は省略形を設定することも出来ます。
ローカルの ~/.ssh/config というファイルを編集します。無い場合は作成しましょう。

Host [省略形]
  HostName [ホスト名].sakura.ne.jp
  User [ユーザ名]
ssh [省略形]

 

4. gitのリモートリポジトリを作成する

/home/[ホスト名]/git/

例としてmyappというアプリのリポジトリを上記のディレクトリに作成します。

cd /home/[ホスト名]/git
mkdir myapp.git
cd myapp.git
git init —bare

リモートリポジトリを初期化する際は--bareを付ける点に注意しましょう。
ディレクトリ名の最後に.gitを付けているのは慣例なので、こちらは任意です。

 

5. リポジトリのpushを行う

ローカルリポジトリのmasterブランチをpushする例です。
既に作成してあるものでも構いませんし、なければ新しく作成しましょう。
pushする際にはcommitが必要です。

ターミナルコマンドの場合とSourceTreeを使用する場合を解説します。

[ユーザ名]@[ホスト名].sakura.ne.jp のところは、手順3で解説した省略形が使えます。

ターミナルの場合
cd [リポジトリのあるディレクトリ]
git remote add origin ssh://[ユーザ名]@[ホスト名].sakura.ne.jp/home/[ホスト名]/git/myapp.git
git push origin master:master
SourceTreeの場合

リポジトリを開き、バージョンにより異なると思いますが
メニューからリポジトリ設定(Repository) > リモート(Remotes)に以下のように設定します。

f:id:ina-amagami:20160928233851p:plain

設定が終わったらOKを押してウィンドウを閉じ、
Pushを押してmasterブランチにチェックを入れてOKを押すとリモートへpushされます。

 

Ex. リポジトリのcloneをする

他のPCで作業する場合や複数人で開発する場合はcloneが必要になると思います。
手順2で解説したように、正しく公開鍵が登録できていればターミナルから以下のようにcloneできます。

git clone ssh://[ユーザ名]@[ホスト名].sakura.ne.jp/home/[ホスト名]/git/myapp.git

cloneしてきた場合はリモートは登録済みなので特に設定は不要です。 以上!