【さくらのVPS】契約してSSHでログインする

 

こんにちは。のっくんです。

 

WebアプリやLinuxコマンドの勉強をしたいときには、VPS(Virtual Private Server)が便利です。

 

レンタルサーバだとroot権限がなかったりリソースが制限されている一方、VPSはroot権限で自由にいじれるので便利です。

 

今回はさくらのVPSを契約する方法と契約したサーバにSSHでログインする方法をご紹介します。

 

30分程度でできますのでやってみてくださいね。

 

[toc]

 

さくらの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 エディタが起動する。

一般ユーザーを sudo できるようにする

 

[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).

 

以上です。お疲れ様でした。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog