ConoHa VPSのUbuntuにユーザを追加してSSHを公開鍵認証にする最も簡単な方法


ユーザを作って権限付与して、ローカルで鍵生成して転送して・・・と面倒な解説ばかりだしCentOSでの解説しか無かったので、UbuntuのVPSで、一般ユーザで公開鍵認証のSSHをする方法です。とっても簡単にしました。

認証用のKeyを、rootと一般ユーザで同じものを使うことにして、ssh-keygenやscpも使いません。

一般ユーザuserを作ります。

前提条件

  • 今からConohaでUbuntuのVPSを立てる
  • SSHのクライアントはローカルに入っている

ConoHaでの準備

ConoHaでSSHキーを作る

ConoHaのセキュリティタブから、SSHセットを予め作ってしまいます。
このとき秘密鍵を一度だけダウンロードできるので、~/.ssh/UbuntuVPS_PrivateKey.pemとでもして保存します。

VPSを作る

オプションのSSH Keyを、”キーを選択”として、さっき作ったキーを指定します。

ここでSSHを指定すると、VPSの認証の設定が勝手に以下のようになります。
公開鍵認証しかするつもりがないなら、/etc/ssh/sshd_configは触る必要がありません。

  • 認証は公開鍵のみ:~/.ssh/authorized_keysを参照する
  • パスワードでの認証は許さない
  • パスフレーズのないキーは許す
  • rootは指定したRSAキーを公開鍵にもつ

とにかく、これで”追加”を押せばVPSが作られます。

ローカルでの準備

先にSSH接続用の設定を作ってしまいます。
~/.ssh/configを、なければ生成して編集する。

~/.ssh/config
Host root
    HostName VPS_IP
    Port 22
    User root
    IdentityFile path\to\.ssh\UbuntuVPS_PrivateKey.pem

Host user
    HostName VPS_IP
    Port 22
    User user
    IdentityFile path\to\.ssh\UbuntuVPS_PrivateKey.pem

User以外はすべて同じです。お手軽ですね。
IdentityFileには、ConoHaからダウンロードした秘密鍵:pemファイルを指定します。

この段階で、rootには以下のコマンドでssh接続できるハズです。

ssh root

そのrootのまま進みます。

VPSの操作

rootでssh接続できたら、一般ユーザを追加して、sudo権限を与え、sshはrootと同じ用にします。
以下のコマンドでいっぺんに完了します。
※CentOSで言うところのwheelグループがubuntuのsudoグループになります。

# パスワードやらプロフィールやら求められる
adduser user

gpasswd -a user sudo
ls /home/
mkdir /home/user/.ssh
cp .ssh/authorized_keys /home/user/.ssh/
chmod 700 /home/user/.ssh
chmod 600 /home/user/.ssh/authorized_keys
chown -R user /home/user

完了したら一度exitする。

たしかめる

次のコマンドでrootで入れることを確認したら、

ssh root

次のコマンドでuserで入れることを確認。

ssh user