メインコンテンツへスキップ

🛠 Ubuntuで新しいユーザーを作成しSSH接続を許可する方法

📌 はじめに

この記事では、Ubuntuサーバーに新しいユーザーを追加し、そのユーザーがSSHでリモートログインできるように設定する方法を解説します。作業にはroot権限(またはsudo権限)が必要です。

パスワード認証と公開鍵認証の両方について触れますが、セキュリティの観点からは公開鍵認証の使用を推奨します。


👤 ユーザーの作成

まずは新しいユーザーアカウントを作成します。

sudo adduser ユーザー名

パスワードやフルネームなどを求められますが、未入力(Enter連打)でも問題ありません。


🔐 SSHログインの許可

sshd_config の確認

/etc/ssh/sshd_configファイルを編集して、パスワード認証の有無を確認します。

sudo nano /etc/ssh/sshd_config

以下のように設定されていれば、パスワード認証でSSHログインできます:

PasswordAuthentication yes

変更した場合は必ずSSHサービスを再起動してください:

sudo systemctl restart ssh

🛡 公開鍵認証(推奨)

セキュリティ強化のため、公開鍵認証の利用をおすすめします。

クライアント側で鍵を生成

ssh-keygen -t ed25519

RSA鍵を使いたい場合は -t rsa でも可。ファイル名・パスフレーズは任意です。

公開鍵をサーバーに転送

ssh-copy-id ユーザー名@サーバーのIPアドレス

もし ssh-copy-id が使えない場合は手動で登録します:

# サーバー側で以下を実行
mkdir -p /home/ユーザー名/.ssh
echo 公開鍵文字列 >> /home/ユーザー名/.ssh/authorized_keys
chmod 700 /home/ユーザー名/.ssh
chmod 600 /home/ユーザー名/.ssh/authorized_keys
chown -R ユーザー名:ユーザー名 /home/ユーザー名/.ssh

🔥 ファイアウォールの確認

SSH接続を許可していないとログインできません。

sudo ufw allow ssh
sudo ufw status

🧪 接続テスト

設定が完了したら、クライアント側からログインしてみます。

ssh ユーザー名@サーバーのIPアドレス

🧰 補足:公開鍵のみを許可する場合

セキュリティをさらに強化したい場合、sshd_config に以下のように設定します:

PasswordAuthentication no

この場合、パスワードログインは完全に無効化され、公開鍵を持っていないとログインできなくなります


✅ まとめ

  • adduser でユーザーを作成

  • sshd_config でSSHの認証方法を確認・調整

  • 公開鍵認証を設定すればより安全

  • 必要に応じてファイアウォールでSSHポートを開放

  • 設定後にログインテストを忘れずに

SSHでのアクセスは便利ですが、セキュリティリスクも伴います。特に外部に公開するサーバーでは公開鍵認証+パスワード無効化+fail2banの導入などの多層防御が推奨されます。