こんにちは。のっくんです。
WebアプリやLinuxコマンドの勉強をしたいときには、VPS(Virtual Private Server)が便利です。
レンタルサーバだとroot権限がなかったりリソースが制限されている一方、VPSはroot権限で自由にいじれるので便利です。
今回はさくらのVPSを契約する方法と契約したサーバにSSHでログインする方法をご紹介します。
30分程度でできますのでやってみてくださいね。
目次
さくらのVPSを契約する
まずは、サイトにアクセスしてプランを選びましょう。今回は一番安いプランで契約します。

申し込みをするときに会員登録が必要なので会員登録をします。
そのあとにクレジットカードでお金を支払うと数分ほどで下のようなメールがきます。

VPSコントロールパネルのURLを開きましょう。サーバが起動していないので、まず起動させます。

次にコンソールを選択して、シリアルコンソール(ベータ版)を開きます。
SSHで入れるようになるまではこのコンソールで作業します。
作業用ユーザの追加
さて、ここからはコンソール上で作業用ユーザの設定をしていきます。rootで全てやりたいって方はスキップしていただいても構いません。
環境
MacOS High Sierra
CentOS 6
さくらのVPSのコンソールを開くと、以下の様に#がついているのでrootでログインしている状態だと思います。ユーザnokkunを追加してパスワードを設定します。ユーザ名、パスワードは何でも良いです。
[root@hogehoge ~]# useradd nokkun [root@hogehoge ~]# passwd nokkun
基本的に一般ユーザが書き込みを許されているのは「/home」「/tmp」ディレクトリのみです。一般ユーザがシステムの設定などが行える様にsudoを使える様にします。
nokkunをwheelというグループに追加して、sudoが使えるようにします。ちなみに、sudoを使えるグループはwheelという名前で決まっている様です。
調べてみたところ、諸説あるようですが個人的に納得したのが big wheel から由来している説です。big wheel というのは「大物」とか「実力者」とかそういった意味のある言葉のようですので、sudo できる権限をもった者という意味では納得がいきます。
[Linux] なぜ sudo する権限のあるグループが「 wheel 」という名前なのか
[root@hogehoge ~]# usermod -G wheel nokkun
次にvisudoコマンドで、sudoをしたときにパスワードを求めない様に変更します。
visudoとは?
sudo
の動作設定は /etc/sudoers に記述されおり、このファイルを編集することでsudo
の動作を変更することができる。/etc/sudoers ファイルは root ユーザでも読み出し権限しかなく、さらに記述内容を間違えると
sudo
コマンドが正常に動作しなくなることもあるため、/etc/sudoers 編集専用のvisudo
コマンドを使い編集する。
visudo
コマンドは保存時に自動的に構文チェックし、誤った記述をしていると警告が出る。
visudo
コマンドは root 権限で実行する。CentOS の場合、vi エディタが起動する。
[root@hogehoge ~]# visudo ## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL ここの行の#を外す
viエディタなので「:wq」で保存して終了します。
次に、wheelグループに所属しているユーザのみ「su」の実行ができる様に設定を行っていきます。
[root@hogehoge ~]# vi /etc/pam.d/su #auth required pam_wheel.so use_uid ここの行の#を外す
「:wq」で保存して終了します。これでユーザの設定は終了です。
下記のコマンドで、rootからnokkunにユーザ変更をしておきましょう。
[root@hogehoge ~]# su nokkun
SSHの設定
VPS上で公開鍵の保存ディレクトリを作ります。
[nokkun@hogehoge ~]$ mkdir /home/nokkun/.ssh [nokkun@hogehoge ~]$ chmod 700 /home/nokkun/.ssh
次にMacで秘密鍵と公開鍵のペアを作ります。-Cでコメントをつけています。鍵名をid_rsa_djangoとしています。パスフレーズはお好きなものを設定してください。sshログインするときに必要になります。
$ ssh-keygen -C 'for_django' Generating public/private rsa key pair. Enter file in which to save the key (/Users/username/.ssh/id_rsa): /Users/nokkun/.ssh/id_rsa_django Enter passphrase (empty for no passphrase): Enter same passphrase again: ...
公開鍵をMacからVPSにコピーします。
$ scp ~/.ssh/id_rsa_django.pub nokkun@[VPSのIPアドレス]:/home/nokkun/.ssh
VPSで公開鍵を登録します。
[nokkun@hogehoge ~]$ cd /home/nokkun/.ssh [nokkun@hogehoge .ssh]$ cat id_rsa_django.pub >> authorized_keys [nokkun@hogehoge .ssh]$ chmod 600 authorized_keys
sshの設定ファイルを開き、公開鍵認証を許可して、パスワード認証をできない様にします。
(公開鍵認証ができることを確認した後でパスワード認証をオフにするのが良いです。)
[nokkun@hogehoge ~]$ sudo vi /etc/ssh/sshd_config # rootログインをできない様にする PermitRootLogin no # 空パスワードを許可しない PermitEmptyPasswords no # 公開鍵認証を許可する PubkeyAuthentication yes # パスワード認証をできない様にする PasswordAuthentication no
サービスを再起動しましょう。(CentOS 6)
[nokkun@hogehoge ~]$ sudo service sshd restart
Macでログインできるか試してみます。
# 公開鍵認証でログインする $ ssh -i ~/.ssh/id_rsa_django nokkun@IPアドレス # パスワード認証で入れないことを確認 $ ssh nokkun@IPアドレス nokkun@IPアドレス: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
以上です。お疲れ様でした。