Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save s4na/ea69c7b090aff8d2020a587ed813b6e6 to your computer and use it in GitHub Desktop.
Save s4na/ea69c7b090aff8d2020a587ed813b6e6 to your computer and use it in GitHub Desktop.

さくらVPS設定手順書その1:Debian 9をインストールしてからsudo、root、SSHを設定するまで.md

さくらVPS設定手順書シリーズ

  1. さくらVPS設定その1:Debian 9をインストールしてからsudo、root、SSHを設定するまで.md
  2. さくらVPS設定その2:PostgreSQLの導入.md
  3. さくらVPS設定その3:Nginxの導入.md

対象

  • コマンドライン操作ができる
  • vi操作ができる
  • SSHの原理が理解できている(秘密鍵、公開鍵、共通鍵など)

注意書き

本文のコマンドについて、[]で閉じている単語は任意の英単語(またはアルファベットの文字列)に変換して作業をしてください。

例: [username] → Comander

さくらVPS

  1. サーバー一覧を開く
    1. 名前設定
    2. VNC コンソールキー配列がjaであることを確認

以降、さくらVPSへのDebian 9のインストールは、VPS カスタムOSインストールガイド - Debian 8 / 9 - さくらのサポート情報を参考に作業。

Debian 9での作業

sudo インストール

$ apt update
$ apt install sudo
$ sudo -V

Vim インストール

$ apt install vim
$ vim -v

SSH

  • グループ作成
$ groupadd wheel
$ groups [username]

$ gpasswd -a [username] wheel
$ id [username]
  • 検証用ユーザー panpi 作成。グループは ippan に所属
$ sudo useradd panpi
$ sudo id
$ sudo passwd panpi

$ sudo groupadd ippan
$ groups panpi

$ gpasswd -a panpi ippan
$ id panpi
  • wheel グループが sudo コマンドを実行できるように
$ visudo # /etc/sudoers.tmp

# "%sudo   ALL=(ALL:ALL) ALL"の下に記入
# ※もし、グループ指定で効かなかったら、ユーザー指定([Linuxユーザー] ALL=(ALL) ALL)で代用
%wheel ALL=(ALL)       NOPASSWD: ALL
#書式チェック
$ visudo -c

# wheelグループ以外のユーザーに切り替えてから"sudo"が実行できないことを確認※例ではvisudo
$ panpi
$ sudo visudo
  • root への切り替えができるユーザーを制限する
$ sudo vi /etc/pam.d/su

# "auth       required   pam_wheel.so deny group=nosu"の下に記入
auth required pam_wheel.so use_uid

# wheelグループ以外のユーザーに切り替えてから"su -"できないことを確認
$ panpi
$ su -
su: Permission denied
  • root への切り替えをパスワードなしで行う
$ sudo vi /etc/pam.d/su

# "# auth       sufficient pam_wheel.so trust"の下に記入
auth sufficient pam_wheel.so trust use_uid

# パスワードなしでrootに切り替えられることを確認
$ su -
  • root で SSH 接続できないようにする
$ sudo vi /etc/ssh/sshd_config

# "#PermitRootLogin prohibit-password"の下に記入
PermitRootLogin no
# 設定変更後、再起動
$ sudo service sshd restart
  • ポート変更
    • SSH で使用するエフェメラルポート(49152 ~ 65535)を決めるため、乱数作成
      • Google で「乱数生成」と検索して、乱数作成
$ sudo vi /etc/ssh/sshd_config

# "#Port 22"を変更
Port [ポート番号]

# サービス再起動
$ sudo service sshd restart

クライアント

  • sshのキー作成
$ mkdir ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -f [指定したいファイル名] -t rsa -b 4096
# パスワード2回入力

# 指定したファイル名でファイルが2つ作成されているか確認(.pub付きとなしが1つずつ)
$ ls
[指定したいファイル名] [指定したいファイル名].pub
  • キーをクライアントに登録
$ ssh-add -K ~/.ssh/[指定したいファイル名]

サーバー

  • ディレクトリ作成
mkdir ~/.ssh

# パーミッション設定
# ※chmodのあとの700は、所有者のみに全ての権限があるという意味
#  参考: https://qiita.com/shisama/items/5f4c4fa768642aad9e06
$ chmod 700 ~/.ssh

# "~/.ssh"のパーミッション設定が700(drwx------)になっているか確認
$ ls -a -l ../

$ touch authorized_keys
$ chmod 600 authorized_keys

# "~/.ssh/authorized_keys"のパーミッション設定が600(-rw-------)になっているか確認
$ ls -a -l
  • パスワード認証の一時有効化
$ sudo vi /etc/ssh/sshd_config
PasswordAuthentication yes
  • クライアントからサーバーにキー送信
$ ssh-copy-id -i ~/.ssh/client_rsa_20190413.pub [Linuxユーザー]@[サーバーのIPアドレス] -p [ポート番号]
# 下記ログが表示され、キーが追加されたことを確認
Number of key(s) added:        1
  • パスワード認証無効化
$ sudo vi /etc/ssh/sshd_config
# 下記設定に変更
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
  • ssh再起動
sudo /etc/init.d/ssh restart
  • SSH接続の確認
$ ssh -i ~/.ssh/client_rsa [Linuxユーザー]@[サーバーのIPアドレス] -p [ポート番号]

参考にしたサイト

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment