ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

Raspberry Pi OSやクラウドイメージで特定のユーザーのみSSHを許可する

Raspberry Pi OSだとpiユーザーというのが標準で用意されている。クラウドイメージだとディストリビューション名のユーザーがデフォルトで用意されている(例えばcentos, fedora, ubuntu, debian, cloud-user など)。

後者だと多くの場合、パスワード認証は許可されていないのである程度安全だが、前者の場合はセットアップ後にデフォルトのパスワードの raspberry を別のものに変更しないと安全ではない。そこで、次のように対処してみる。

まず、ユーザーを作成する。

sudo adduser myname

次にユーザーでsudoコマンドが使えるように、グループsudoに追加する。

sudo usermod -aG sudo myname

(現時点のRHEL,Fedora,CentOSなどはsudoグループではなくwheelなので注意。バージョンが変わると変更があるかもしえないので、都度確認すること)

次に、SSHDの設定を開いて、SSH接続を許可するユーザー(AllowUsers)を記述する。

sudo vi /etc/ssh/sshd_config 
AllowUsers myname

上記設定を反映させるためにSSHDサービスを再起動する。

sudo systemctl restart sshd

これで

  • 既存のユーザー(例ではpiユーザーなど)は、コンソールログインは可能だがSSH接続は不可。
  • 新しく作ったmynameユーザーでは、SSHおよびコンソールログインが可能。

のように動作するようになる。 本稿では述べないが、このあとさらに新しいユーザーで公開鍵認証のみを許可すると良い。

ちなみに上記の「コンソールログイン」とは、ここではディスプレイとキーボードを接続してそれらを使って端末に直接アクセスすることをそう呼んでいる。

このブログサイトはJavaScriptを使っていますが、読み込んでいるJavaScriptは全てはてなが提供しているものであり、筆者が設置しているものではありません。