0
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?

Ubuntuのユーザー設定

Last updated at Posted at 2024-12-06

はじめに

VPS導入後、Ubuntu24.04のデフォルト状態ではSSH接続ができずに躓きかけたので、基本的な設定のメモ。
また、UTMが存在するLANから接続する場合、ファイアウォール設定(SSL)でフィルタリングされてしまうので注意

環境

Ubuntu24.04

rootユーザー

SSH接続時にrootユーザーは原則NGと考えてください。
Ubuntu24.04のデフォルト設定ではrootユーザーでパスワード認証できないようになっています

VPS
root@xXXX-XX-XX-XXX:~# vim /etc/ssh/sshd_config  

# 36行目:コメント解除して[no]に変更するとrootログイン一切禁止します  
# [prohibit-password]はパスワード認証を禁止します
PermitRootLogin prohibit-password

# 変更後はsshを再起動  
root@xXXX-XX-XX-XXX:~# systemctl restart ssh  

一般ユーザー

SSH接続するために、一般ユーザーを追加します。また、各種コマンド実行のため、sudoの権限設定を行います。

ユーザー追加

VPS
# ユーザー追加
# adduserとuseraddコマンドの間違いに注意。  
# useraddの場合、-mオプションでユーザーのホームディレクトリが存在しない場合、作成する。  
root@xXXX-XX-XX-XXX:~# useradd -m 新しいユーザー名 

# パスワード設定  
root@xXXX-XX-XX-XXX:~# passwd 新しいユーザー名  
ユーザー 新しいユーザー名 のパスワードを変更。  
新しいパスワード:  
新しいパスワードを再入力してください:  
passwd: すべての認証トークンが正しく更新できました。  

ユーザー一覧

VPS
root@xXXX-XX-XX-XXX:~# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
~~~~~
(省略)
~~~~~
NEWUSERNAME:x:USERID:GROUPID::/home/NEWUSERNAME:/bin/bash

/etc/passwd:区切りで下記情報を保持しています

項目 作成された情報
1 ユーザー名 NEWUSERNAME
2 ダミーパスワード x
3 ユーザーID USERID
4 グループID GROUPID
5 コメント (空)
6 ホームディレクトリ /home/NEWUSERNAME
7 ログインシェル /bin/bash

パスワード一覧

VPS
root@xXXX-XX-XX-XXX:~# cat /etc/shadow  
root:$6$n.LBF.Pi$pGDNeMrJNjOgXlcjQdguA/tZTryDlrDR2LCYgCrlT3KDpAu55nGmoh.4.OHlVL0zDw/YQlpV4HM6zzKCd2hQH.:18307:0:99999:7:::
~~~~~
(省略)
~~~~~
NEWUSERNAME:$6$rwTX74Ir$YhhyryrTsbKdlAIWMKJqRQoQsK1TgelnQmHSpGmCDoXiGWQeQLTDtD73FEGur6tw5wZ50SbBo2QNVKEQUDcpV0:1830:0:99999:7:::

/etc/shadow:区切りで下記情報を保持しています

項目 作成された情報
1 ユーザー名 NEWUSERNAME
2 パスワード (ハッシュ値)
3 最終パスワード変更日 1830(UNIXエポックタイムから経過日数)
4 パスワード変更可能日数 0
5 パスワード有効期限 99999
6 パスワード変更期間警告通知日 7
7 アカウント無効日数 (空)
8 アカウント有効期限 (空)
9 予約フィールド (空)

グループ一覧

VPS
root@xXXX-XX-XX-XXX:~# cat /etc/group
root:x:0:
~~~~~
(省略)
~~~~~
NEWUSERNAME:x:1002:

/etc/shadow:区切りで下記情報を保持しています

項目 作成された情報
1 ユーザー名 NEWUSERNAME
2 ダミーパスワード x
3 グループID GROUPID
4 サブグループとして所属しているユーザー
(複数の場合はカンマ区切り)
(空)

sudo権限設定

/etc/sudoersを編集してsudo権限を設定します。
sudoersファイルを安全に編集するためにvisudoコマンドを利用します。
visudoは同時編集が発生しないようにsudoersファイルをロックします。visudoを実行している間はロックファイルとして/etc/sudoers.tmpが作成されています

VPS
root@xXXX-XX-XX-XXX:~# visudo
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL
+ ユーザー名    ALL=(ALL) ALL

SSH接続

windowsコマンドプロンプト または Teraterm などを利用してSSH接続が可能です。
パスワード認証を一時的に有効化し、公開鍵を~/.ssh/authorized_keysに配置して公開鍵認証を有効化したらパスワード認証は再度無効化してください

認証鍵作成

Ubuntu22以降Open SSHが8.8となり、RSAが初期で無効化され、通常ではRSAの鍵は使用できなくなりました。-tオプションを付けてアルゴリズムを指定します。

Client
C:\Users\username> ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
# 保存ファイルフルパスを入力します
Enter file in which to save the key (C:\Users\GVDKUGR/.ssh/id_ed25519):
# パスフレーズを設定しない場合は何も入力せずにEnterキー
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

パスワード認証有効化(一時的)

公開鍵配置のため、一時的にパスワード認証を有効化します

VPS
# パスワード認証有効化
root@xXXX-XX-XX-XXX:~# vim /etc/ssh/sshd_config
- #PasswordAuthentication yes
+ PasswordAuthentication yes

# ssh再起動
root@xXXX-XX-XX-XXX:~# systemctl restart ssh

公開鍵設定

Client
# ssh接続(パスワード認証)
C:\Users\username> ssh ユーザー名@IPアドレスまたはホスト名
ユーザー名@IPまたはホスト名 password:
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-49-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro
~~~
(省略)
~~~
This key is not known by any other names.
# 初回起動時は接続の確認があるので[yes]と入力してください
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes 
~~~
(省略)
~~~
Last login: Fri Dec  6 22:34:29 2024 from 61.24.84.42

# ディレクトリ作成・パーミッション設定
username@xXXX-XXX-XXX-XXX:~$ cd ~/.ssh
username@xXXX-XXX-XXX-XXX:~$ chmod 700 .ssh
Client
# 公開鍵転送
C:\Users\username> scp 公開鍵のファイルパス ユーザー名@IPまたはホスト名:~/.ssh/authorized_keys(転送先ファイルパス)
VPS
# 公開鍵のパーミッション設定
username@xXXX-XXX-XXX-XXX:~$ chmod 600 ~/.ssh/authorized_keys

※他の公開鍵が設定済みの場合、上書きされてしまうので他の方法での公開鍵転送を検討してください。

パスワード認証無効化/公開鍵認証有効化

VPS
# パスワード認証無効化
root@xXXX-XX-XX-XXX:~# vim /etc/ssh/sshd_config
- #PubkeyAuthentication yes
- #AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2
+ PubkeyAuthentication yes
+ AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2
- PasswordAuthentication yes
+ PasswordAuthentication no

# ssh再起動
root@xXXX-XX-XX-XXX:~# systemctl restart ssh

ssh接続

Client
# ssh接続(公開鍵認証)
C:\Users\username> ssh -i .\.ssh\公開鍵 ユーザー名@IPアドレスまたはホスト名

参考文献

rootユーザー

参考:Ubuntu 23.04 _ OpenSSH _ パスワード認証 _ Server World

一般ユーザー

参考:Ubuntuでユーザーの確認・追加・削除・sudoに追加

一般ユーザー/sudo権限設定

参考:visudoコマンドでsudoersファイルを編集する
参考:root用コマンドを特定ユーザーが実行できるようにするには

SSH接続

参考:Ubuntu 24.xでSSHの認証鍵を設定する方法 _ 株式会社大塚ビジネスサービス

0
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
0
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?