2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SSH接続でrootログインを無効化して新しいユーザーでログインする方法(あんま良くないけど既存の公開鍵を流用する場合)

Last updated at Posted at 2021-08-08

概要

  • サーバーにrootでログインするのはセキュリティ上よくないので,新しいユーザーを作ってそれを使わないとSSHで接続できないようにしたい.
  • パスワードログインも使えないようにしたい.
  • (セキュリティ的に良くないけども)すでにrootで登録した公開鍵(authorized_keys)を新しいユーザーでもそのまま流用したい
    • この記事では鍵生成はクライアント側で行っているという前提で話を勧めます.

環境

  • サーバー(ホスト) : Ubuntu 20.04 LTS (ConoHa VPS)

留意事項

  • 手順[3]で,新しいユーザーでSSHログインが可能になったのを確認するまでは,手順[4]には絶対に進まないでください.下手するとサーバーから締め出され二度とログインができなくなります

[1] 新しいユーザーを作成

rootでサーバーにログインし,以下のコマンドで新しいユーザーを作成してください.<username>は使いたいユーザー名に置き換えてください.

adduser <username>

パスワードを二回聞かれますので,使いたいパスワードを入力し次へ進んでください.

その後,ユーザーのプロフィールに関する質問(フルネームや電話番号など)を聞いてくる場合がありますが,空欄のまま全部スキップしてください.最後に Is the information correct? と聞かれたら,Yesと入力して完了です.

作成したユーザーを,sudo グループに追加します.

gpasswd -a <username> sudo

参考にさせていただいた記事

ubuntu ユーザを追加して sudo 権限をつける - Qiita
https://qiita.com/white_aspara25/items/c1b9d02310b4731bfbaa

[2] 公開鍵ファイルのコピー

新しく作成したユーザーに公開鍵のファイルをコピーします.

mkdir /home/<username>/.ssh
cp /root/.ssh/authorized_keys /home/<username>/.ssh/authorized_keys

先ほど作成した .ssh フォルダと,コピーした公開鍵ファイルのパーミッションと所有者を変更します.これをしないと新しいユーザーでログインができません.

cd /home/<username>
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
chown -R <username> .ssh

念のため,ここでサービスを再起動しておきます.

systemctl restart sshd

これで新しいユーザーでも,同じ鍵ペアでログインが可能になります.

[3] 新しいユーザーでログインできるか確かめる

一度サーバーからログアウトし,先ほど作成したユーザーで公開鍵暗号方式でログインしてみます.クライアント側でOpenSSHを使っていて,.ssh/config にホスト情報を記載している場合は, root@<ホスト名> のrootの部分を新しいユーザー名に書き換えるだけでOKです.

[4] SSHの設定を変更する

新しいユーザーでログインできると確認できてから,サーバー側のSSH設定を変更します.ターミナル上で使えるテキストエディタを,サーバーに用意しておいてください.(ここではVimを使っています)

sudo vim /etc/ssh/sshd_config 

sshd_configのファイルで,以下の設定が書かれている行を見つけ,それぞれ設定を書き換えてください.このファイルでは,先頭が#で始まる行はコメント扱いとなっていますので,コメントアウトされていたら先頭の#を取り除いてください.(以下の設定項目はconfigファイルとは順不同です)

PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes

サービスを再起動すると設定が反映されます.

sudo systemctl restart sshd

これでrootログインとパスワードを使ったログインができなくなります.

念のため,rootユーザーの公開鍵ファイルも削除しておきましょう.

su
Password: <rootユーザーのパスワード>
rm /root/.ssh/authorized_keys
exit

以上で一連の作業は終了となります.お疲れ様でした.

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?