ConoHa VPSでSSH接続ってどうやるの?
今回はそんなConoHa VPSでSSH接続する方法を書いていきたいと思います。
この記事で分かること
- ConoHa VPSにSSH接続する方法(パスワード認証)
- ConoHa VPSにSSH接続する方法(鍵認証)
- ConoHa VPSにroot以外のユーザーでSSH接続する方法
- rootのSSH接続の禁止設定方法
- パスワード認証の禁止設定方法
SSH接続する方法を見ていくんですが、後半ではセキュリティ面を意識してrootユーザーではSSH接続できないようにしていきます。VPSをちゃんと使うならやっておくことをお勧めします。
ConoHa VPSでSSH接続する方法を見ていきましょう。
ConoHa VPSでSSH接続する方法
SSH接続する方法は大きく分けて2つです。
- ユーザーとパスワードでログインする
- 公開鍵・秘密鍵を使ってログインする
どちらの方法も書いていくけど、後でrootユーザー以外でSSH接続する方法を書いていきます。
ユーザー名(root)とパスワード(rootパスワード)で接続する
接続先のIPアドレスが分かっていれば、rootと設定したrootパスワードでログインすることができます。
IPアドレスを確認する
SSH接続する
ユーザー名にroot、IPアドレスに確認したIPアドレスを入力して接続しましょう。
$ ssh root@IPアドレス
パスワードが聞かれるけど、サーバー作成時に設定したrootパスワードを入力すればログインできます。
ConoHa VPSに鍵認証でSSH接続する
ConoHa VPSの管理画面でSSH鍵を作ることができるので、そこで作成した鍵を使ってSSH接続したいと思います。
手順としてはこんな感じです。
- ConoHa VPSでパブリックキーを作成
- ConoHa VPSでプライベートキーをダウンロード
- ダウンロードしたプライベートキーを使ってSSH接続
ConoHa VPSでパブリックキーを作成する
ConoHa VPSの[セキュリティ→SSH Key]と進んで[+パブリックキー]をクリックしましょう。
ネームタグを入力して保存をクリックすると、プライベートキーがダウンロードできます。
ダウンロードボタンを押すとプライベートキーがダウンロードされます。ダウンロードしたら、鍵の場所とパーミッションは変更しておきます。
$ mv conoha-vps-private-key.pem /Users/〇〇/.ssh/
$ cd /Users/〇〇/.ssh/
$ chmod 600 conoha-vps-private-key.pem
公開鍵をサーバーに配置する
さっき作成したSSH Keyのパブリックキーを確認しましょう。
これをサーバーの中の.ssh/authorized_keysに配置します。
$ ssh root@IPアドレス
$ cd .ssh
$ vim authorized_keys
=> パブリックキー貼り付け
鍵を使ってSSH接続する
これで試しにrootでssh接続してみましょう。
$ ssh -i 鍵までのパス root@サーバーのIPアドレス
これで鍵を使って接続できました。
SSH接続のセキュリティを強化する
SSH接続の方法を見てみたけど、rootで接続できてしまうのでセキュリティが怖いです。
rootはなんでもできるユーザーです。どんな操作もできるって考えるとちょっと怖いですよね。rootはなんでもできてしまうから、何かサーバーの中身をいじる分にはなんの制限もなく色々できてしまうので楽です。ただセキュリティ面は最悪です。
このrootを許可したまま作業するのはいただけないので、rootユーザーでのSSH接続は禁止するのがおすすめです。
求めるのは以下の方法を用いたSSH接続。
- root以外のユーザーでパスワード認証を使わず鍵認証だけでSSH接続
上記以外の以下のような接続はセキュリティ的に禁止したいです。
- rootを使ったSSH接続
- ユーザーのパスワードを用いたSSH接続
設定項目
少しサーバー設定をする必要があるけど、今のままだと怖いので設定してしまいましょう。やることとしては以下です。
- root以外のユーザーの作成
- パスワード認証の禁止
この後作業していくんだけど、今回ConoHa VPSで作業するOSはUbuntuです。OSよって多少違うけど大体の作業は同じはず。
root以外のユーザーを作成する
rootユーザーでssh接続したら別のユーザーを作成します。ユーザー名はkobayashiにしておこう。
$ adduser kobayashi(useraddだとホームディレクトリが作成されないのでadduser)
=>パスワードの入力を求められるので、好きなパスワードを設定する
wheelグループを作成する
CentOSであれば、すでにwheelグループは用意されているけど、UbuntuなどのOSによってはないのでその場合は作成します。
$ groupadd wheel
wheelグループを作成したらこのグループをsudoできるように設定します。
$ visudo
=> %wheel ALL=(ALL) ALL
を追加
初期状態がnanoで開かれます。
vimエディタに変更する
nano使いたくない人はエディタを変更しましょう。以下コマンドでnanoからvimに変更できます。
$ update-alternatives --config editor
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 15 manual mode
wheelグループにユーザーを追加する
$ usermod -G wheel kobayashi
これでrootに代わってkobayashiっていうユーザーが実行できるようになりました。これでSSH接続を試してみましょう。
$ ssh kobayashi@サーバーのIPアドレス
=> 設定したIPアドレスを入力してログイン
ユーザー作成時に設定したパスワードを入力すればログインできます。ただこれだとまだパスワードログインできてしまっているので、後ほど変更します。
rootのログインを禁止する
rootでログインできないようにします。
$ sudo vim /etc/ssh/sshd_config
#PermitRootLogin yes => noに変更する
再起動してrootでログインできないことを確認しましょう。
$ sudo service ssh restart
これでrootでログインしようとすると弾かれるはずです。
SSH接続のパスワードログインを禁止する
この時点でrootでのログインはできなくなったけど、作成したユーザーでのパスワードログインはできてしまいます。なので、それを禁じます。
$ sudo vim /etc/ssh/sshd_config
PasswordAuthentication yes => noに変更
これで再起動して完了です。
$ sudo service ssh restart
root以外の作成したユーザーで鍵認証してSSH接続できるようにする
rootアカウントがSSHの鍵認証を使用している場合を参考に作成したユーザーで鍵認証してログインできるようにします。
$ rsync --archive --chown=kobayashi:kobayashi ~/.ssh /home/kobayashi
これでkobayashiで鍵を使ってログインできるようになりました。
まとめ - ConoHa VPSでSSH接続する方法
今回はConoHa VPSでSSH接続する方法について書きました。
- パスワードを使った認証
- 鍵を使った認証
上記の方法について書いたけど、おすすめの方法はrootを使わずに別のユーザーで鍵を使ったSSH接続です。設定はちょっと面倒だけど、最初やっておけばあとは楽です。
ユーザーを作成してやったこととしては以下。
- ユーザーの作成
- root権限と同じぐらいの強さを持つwheelグループの作成
- wheelグループに作成したユーザーを追加
- rootでのSSH接続を禁止に
- パスワード認証を禁止にして鍵認証のみに
これで作成したユーザーを使った鍵認証でしかSSH接続できなくなりましたね。