FTPやFTPSでファイルをアップロード/ダウンロードするのはセキュリティ面からよろしくないということで、SSHでserverにログインしてgitでデータの取得をしたいのでその手順です。
環境
- サーバはレンタルサーバーの「Xserver」
- Macのteminal
手順
Xserverの公式サイト「SSH設定」で記載されているようにSSHでserverにログインするには「公開鍵」を自分で生成するか、サーバー上で「公開鍵認証用鍵ペア」を生成するかのどちらかになります。
お客様にて生成の公開鍵を登録していただく方法と、サーバー上で公開鍵認証用鍵ペアを生成し秘密鍵をダウンロードしていただく方法がありますので、下記をご参照の上、生成または登録を行ってください。
SSH設定をONにする
- Xserverのサーバーパネルにログイン
-
SSH設定
でSSH設定をON
にする
公開鍵認証用鍵ペアの生成
- XserverのSSH設定で
公開鍵認証用鍵ペアの生成
タブを選ぶ -
パスフレーズ
を入力する -
{サーバーID}.key
をダウンロード - homeディレクトリの
.ssh
にダウンロードしたkeyファイルを格納 - keyファイルのパーミッションを
600
に設定 - サーバーにログイン
パーミッションを600に設定
$ chmod 600 {サーバーID}.key
サーバーにログイン
$ ssh -i ~/.ssh/{サーバーID}.key -p 10022 {サーバーID}@{サーバー番号}.xserver.jp
公開鍵を登録
- terminalで秘密鍵と公開鍵を生成
- パスフレーズを設定
- homeディレクトリの
.ssh
にhoge_rsa
とhoge_rsa.pub
を格納 -
hoge_rsa
とhoge_rsa.pub
のパーミッションを600にする - XserverのSSH設定で
公開鍵登録・設定
タブを選ぶ -
hoge_rsa.pub
の中身を貼付
サーバーにログイン
秘密鍵と公開鍵を生成
$ ssh-keygen -t rsa -f hoge_rsa
パーミッションを600に設定
$ chmod 600 hoge_rsa
サーバーにログイン
$ ssh -i ~/.ssh/hoge_rsa -p 10022 {サーバーID}@{サーバー番号}.xserver.jp
gitが使えれば
「Xserver」はレンタルサーバー(共有サーバー)なのでgit
が入ってないのですが、gitが使えればSSHでログインしてgit clone
でremoteのデータを取得、git pull
で本番サイトを更新などをすることができます。
scpでサーバー/ローカルのデータをコピー
サーバーのファイルをローカルにコピー
秘密鍵でserverにログイン
$ scp -i ~/.ssh/{秘密鍵名}_rsa -P 10022 {サーバーID}@{サーバー番号}.xserver.jp:{サーバーのpath}/test.txt {ローカルのpath}
ローカルのファイルをサーバーにコピー
秘密鍵でserverにログイン
$ scp -i ~/.ssh/{秘密鍵名}_rsa -P 10022 {ローカルのpath}/test.txt {サーバーID}@{サーバー番号}.xserver.jp:{サーバーのpath}
サーバーのディレクトリをローカルにコピー
-rはディレクトリをコピーするオプション
$ scp -r -i ~/.ssh/{秘密鍵名}_rsa -P 10022 {サーバーID}@{サーバー番号}.xserver.jp:{サーバーのpath}/test {ローカルのpath}
ローカルのディレクトリをサーバーにコピー
-rはディレクトリをコピーするオプション
$ scp -r -i ~/.ssh/{秘密鍵名}_rsa -P 10022 {ローカルのpath}/test {サーバーID}@{サーバー番号}.xserver.jp:{サーバーのpath}