Edited at

ConohaにVPSを設置して、SSHログイン、ポート番号変更、rootログイン禁止までを30分で!

More than 1 year has passed since last update.

出来るだけシンプルにまとめてみました。root用のSSH Key不要です。


最初に決めておくこと

項目

説明

rootパスワード
好きなものを
rootユーザー用のログインパスワード

作業用ユーザー名
newuser
rootで常にログインするのは危険なので作業用ユーザーを作成します

作業用ユーザーパスワード
好きなものを
作業用ユーザーのログインパスワード

SSH鍵を保存するファイル名
conoha

ssh-keygenコマンドに渡すファイル名です

SSH鍵のパスフレーズ
好きなものを
SSH鍵を使うためのパスワードです

SSHサービスを動かすポート番号
10022
デフォルトの22で動かし続けるのは危険なので適当なポート番号に変更します。
WELL NONEやREGISTEREDポートを避けた49152~65535辺りがおすすめらしいです。

この6項目を先に決めてどこかにメモってからはじめるとスムーズに作業を進めることができます。(以下、メモ用のリスト)


  • rootパスワード

  • 作業用ユーザー名

  • 作業用ユーザーパスワード


  • SSH鍵を保存するファイル名


  • SSH鍵のパスフレーズ


  • SSHサービスを動かすポート番号



サーバー追加

デフォルトの900円プラン


  • OSはCentOS 7.1(x64)

  • SSH Key は「使用しない」

conoha-01.png


IPアドレスを確認

IPアドレスが分からないとログイン出来ないので先に調べておきます。

conoha-02.png


パスワード認証でrootにログイン

さきほど確認したIPアドレスでログインします。xxx.yyy.zzz.aaaだったらroot@xxx.yyy.zzz.aaaです。

/etc/ssh/sshd_configの初期設定がPermitEmptyPasswords yesになっているのでパスワード認証でログインできます。

2017-01-29 追記


@s_of_p さんから指摘がありました。Ubuntu 16.04 64bitではPermitEmptyPasswords noかつ PasswordAuthentication noとなっているそうです。

この辺りは選択したOSの種類などによって初期設定に微妙に違いがあると思います。(CentOS 7.1でもすでにnoになっているかも、その場合はブラウザ経由など別の方法でSSH鍵を置きましょう)


$ ssh root@xxx.yyy.zzz.aaa -p 22

root@xxx.yyy.zzz.aaa's password: # パスワード入力

# ログイン成功!
[root@1xxx.yyy.zzz.aaa ~]#


ユーザー作成

newuserという名前で作るものとします。

# ユーザー作成

$ adduser newuser

# パスワード設定
$ passwd newuser

# wheelグループに追加
$ gpasswd -a newuser wheel

# 作成したnewuserでログインできるか確認
$ su newuser


作成したユーザーからsudoやsuが出来ることを確認

初期設定ですでにwheelグループに特権が付いているはずです。

$ sudo echo "aaa"

[sudo] password for newuser:
aaa

$ su # rootになる
パスワード: # rootのパスワードを入力

$ su newuser # newuserに戻る


SSHログインを許可

$ sudo vi /etc/ssh/sshd_config 

以下の3つの設定を変更してください(設定箇所は離れているかも)。viの使い方はこちら

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

$ sudo service sshd restart


SSH鍵を作成


ホスト側で鍵を作成

# ~/.ssh を作成

$ cd ~/
$ mkdir .ssh
$ chmod 700 .ssh

# 鍵を作成
$ cd ~/.ssh
$ ssh-keygen -t rsa -b 2048
Enter file in which to save the key: conoha # ファイル名はconoha(好きなもので)
Enter passphrase: # パスフレーズを設定
Enter same passphrase again: # パスフレーズをもう一度

# AuthorizedKeysFileで設定したファイル名に名前変更
$ mv conoha.pub authorized_keys
$ chmod 600 authorized_keys


ローカルPCに秘密鍵をコピー

$ cat conoha

$ cd ~/.ssh

$ vi conoha //先ほどcat conohaでコピーした内容をペーストして保存してください
$ chmod 600 conoha


~/.ssh/ssh_config

#ConoHa

Host conoha
HostName xxx.yyy.zzz.aaa
User newuser
Port 22
IdentityFile ~/.ssh/conoha


作ったユーザーでSSHリモートログインできるかテスト

ローカルPCからコマンド入力


~/.ssh/ssh_config

$ ssh conoha



もっと安全に


rootからのログインを禁止

PermitRootLogin no 

$ sudo service sshd restart


パスワードによるログインを禁止

PasswordAuthentication no

$ sudo service sshd restart

これでrootからのリモートログインが不可能になります。

$ ssh root@xxx.yyy.zzz.aaa -p 22

Received disconnect from xxx.yyy.zzz.aaa


SSHのポート番号を変更

sshdだけでなくiptablesにも設定変更が必要なので注意。CentOS7はデフォルトでiptablesサービスが入っていないのでまずインストール

$ sudo yum install iptables-services

sudo vi /etc/sysconfig/iptables を編集。


/etc/sysconfig/iptables

--A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

+-A INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT

iptablesサービスを再起動します。

$ sudo service iptables restart

sudo vi /etc/ssh/sshd_config を編集。

Port 10022

$ sudo service sshd restart

ローカルPCに戻ってssh_configを編集します。


~/.ssh/ssh_config

#ConoHa

Host conoha
HostName xxx.yyy.zzz.aaa
User newuser
+ Port 10022
- Port 22
IdentityFile ~/.ssh/conoha

これで10022ポートを使ってSSHログイン出来るようになりました。

$ ssh conoha

# 22番ポートのログインは不可能に
$ ssh newuser@xxx.yyy.zzz.aaa -p 22
ssh: connect to host xxx.yyy.zzz.aaa port 22: Connection refused

再起動(sudo reboot)したときのために自動起動も設定しておきましょう。(ルーティングにiptablsを使うことを選んだのでfirewalldを停止する必要があることに注意です)

$ sudo systemctl stop firewalld.service

$ sudo systemctl mask firewalld.service
$ sudo systemctl enable iptables.service


まとめ

次はDockerなど必要なアプリケーションを入れていきましょう。おかしな部分がありましたら突っ込みなどいただけると幸いです。


参考文献