Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
31
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

ConoHa VPSでUbuntuの初期設定(作業ユーザ追加、ssh設定)メモ

背景

  • ローカルマシンが近々切り替わるのと、外出が多くなることから、VPS上に環境が欲しくなった
  • さくらVPSを考えていたが、最近はConoHaが比較対象になってるようなので試しに使ってみることにした
  • dockerがUbuntu推しらしいので、Ubuntuを利用することにした

概要

  • 作業ユーザを作って、rootログインを禁止するところまでの手順

手順メモ

ConoHaでサーバを追加

下記内容を選択してサーバを追加。事前にSSH Keyは登録しておく。

  1. プラン:VPS / 東京 / 1GB
  2. イメージ:OS / Ubuntu / 14.04(64bit)
  3. オプション:自動バックアップ:無効 / SSD 50GB / SSH, Web / SSH, Web / 登録済みのキー

作業ユーザ設定

  • sshでログイン

    IPアドレスはConoHaの管理画面で「サーバー」>ネームタグをクリック>「ネットワーク情報」で確認できる。
    以下、Windowsマシンのgit-bashから作業を実施。

$ ssh root@xxx.xxx.xxx.xxx
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
ECDSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxx.xxx.xxx.xxx' (ECDSA) to the list of known hosts.
Enter passphrase for key '/c/Users/user/.ssh/id_rsa':
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.16.0-60-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Tue Jun 21 12:35:22 JST 2016

  System load: 0.0               Memory usage: 5%   Processes:       65
  Usage of /:  3.2% of 48.11GB   Swap usage:   0%   Users logged in: 0

  Graph this data and manage this system at:
    https://landscape.canonical.com/

root@xxx-xxx-xxx-xxx:~#
  • ユーザ追加
# adduser segu
Adding user `segu' ...
Adding new group `segu' (1000) ...
Adding new user `segu' (1000) with group `segu' ...
Creating home directory `/home/segu' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for segu
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n]
#
  • ユーザをsudoグループに追加
# gpasswd -a segu sudo
Adding user segu to group sudo
  • 作業ユーザの公開鍵を設置

    一旦サーバからログアウトして、scpで公開鍵を転送。

# exit
logout
Connection to xxx.xxx.xxx.xxx closed.

$ scp /path/to/ssh/id_rsa.pub root@xxx.xxx.xxx.xxx:~/
Enter passphrase for key '/c/Users/user/.ssh/id_rsa':
id_rsa.pub                                                                                                                    100%  750     0.7KB/s   00:00
  • ログインして公開鍵を設置
$ ssh root@xxx.xxx.xxx.xxx
  :
 (略)
  :
# mkdir ~segu/.ssh
# mv id_rsa.pub ~segu/.ssh/authorized_keys
# chown -R segu: ~segu/.ssh
# chmod 700 ~segu/.ssh
# chmod 600 ~segu/.ssh/authorized_keys
# exit
  • 作業ユーザでのログインを確認
$ ssh -i /path/to/ssh/id_rsa segu@xxx.xxx.xxx.xxx
  :
 (略)
  :
$

ssh設定(rootログイン禁止)

  • sshd_configファイルを編集する
$ sudo vi /etc/ssh/sshd_config
  • rootログインを禁止する(それ以外の基本的な設定はされた状態になっている)
sshd_config
PermitRootLogin yes
                 ↓ 変更
PermitRootLogin no
  • sshサービスを再起動する

    下記のようにsudo実行時にメッセージが表示されるがあとで対応する。

$ sudo service ssh restart
sudo: unable to resolve host xxx-xxx-xxx-xxx
ssh stop/waiting
ssh start/running, process 2454
  • rootでログインできないことを確認する
$ ssh root@xxx.xxx.xxx.xxx
Enter passphrase for key '/c/Users/user/.ssh/id_rsa':
Permission denied (publickey).

なお、サーバーを追加するときの設定で接続許可ポートをSSHとWebに限定しているので、それ以外のポートへの接続はUbuntuに到達する以前に弾かれる模様。
そのため、ssh のポート番号を変更したい場合は、接続許可ポートを「全て許可」にした上で、ポートの設定は自分で別途行う必要がある。

アップデート

アップデートを先に行ってもいいと思う。個人的には先にRootログインを禁止したかったので、この順番。

$ sudo apt-get upgrade
sudo: unable to resolve host xxx-xxx-xxx-xxx
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ sudo apt-get update
sudo: unable to resolve host xxx-xxx-xxx-xxx
Ign http://jp.archive.ubuntu.com trusty InRelease
  :
 (略)
  :
Fetched 5,520 kB in 7s (747 kB/s)
Reading package lists... Done

sudo時のメッセージ対策

ホスト名設定してからの方がいい。

$ sudo sh -c 'echo 127.0.1.1 $(hostname) >> /etc/hosts'

あとがき

  • sudoの設定の仕方がCentOSとは違っていた
  • sshd_configの設定があらかたされている状態なのがよい
  • こういうのはchef等で用意しておくとよいのだろうけど、よく分からない

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
31
Help us understand the problem. What are the problem?