質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

解決済

公開鍵認証で複数人のユーザを登録したい

hiphop365
hiphop365

総合スコア1

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

2回答

0グッド

0クリップ

400閲覧

投稿2022/10/30 04:17

編集2022/10/30 09:31

前提

  • root権限をもつpiyoは、事前に公開鍵認証でsshでログインできています。
  • 新規追加するユーザhogeは、piyoと同じクライアントPCを使っています。

/etc/ssh/sshd_configの設定

  • PasswordAuthenticationnoになっています。そのため、scpを使わずにコピペで公開鍵をauthorized_keysに追加しています。
  • PermitRootLogin prohibit-passwordになっています。

実現したいこと

公開鍵認証のsshで複数人のユーザを登録しようとしています。

発生している問題・エラーメッセージ

サーバで新規作成されたユーザhogesshすると、Permission denied (publickey)になってしまいます。

root権限をもつpiyoはログインできます。

何らかの方法でユーザ名と公開鍵、またはクライアントPCのIPを紐付ける必要があるのかもしれないと考えています。

bash

1$ ssh -l hoge -i ~/.ssh/秘密鍵のファイル名 固定IP

試したこと

サーバ側

/home/hogeディレクトリを作成し、hogeユーザを作る

bash

1$ sudo useradd -s /bin/bash -d /home/hoge -m hoge

hogeユーザを確認

bash

1$ cat /etc/passwd | grep hoge 2hoge:x:1001:1001::/home/hoge:/bin/bash

クライアント側

秘密鍵hogeと公開鍵hoge.pubを作成

bash

1$ ssh-keygen -t ed25519 2Enter file in which to save the key (/Users/piyo/.ssh/id_ed25519): /Users/piyo/.ssh/hoge

サーバ側

公開鍵をコピー

bash

1$ pbcopy < ~/.ssh/hoge.pub

authorized_keysに公開鍵を追加する。事前に~/.sshにはchmod 700~/.ssh/authorized_keysにはchmod 600を設定している。

bash

1$ sudo nano ~/.ssh/authorized_keys

piyoはログインできるがhogeは、Permission denied (publickey)になる。

bash

1$ ssh -l hoge -i ~/.ssh/秘密鍵のファイル名 固定IP

補足情報(FW/ツールのバージョンなど)

OS:Ubuntu 22.04.1 LTS

bash

1$ cat /etc/os-release 2PRETTY_NAME="Ubuntu 22.04.1 LTS" 3NAME="Ubuntu" 4VERSION_ID="22.04" 5VERSION="22.04.1 LTS (Jammy Jellyfish)" 6VERSION_CODENAME=jammy 7ID=ubuntu 8ID_LIKE=debian 9HOME_URL="https://www.ubuntu.com/" 10SUPPORT_URL="https://help.ubuntu.com/" 11BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 12PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"

成功手順

複数ユーザでsshする場合、各ユーザのディレクトリに公開鍵を追加しておく必要がある。また、.sshやauthorized_keysの所有権はユーザにないと読み込めずに失敗する。

サーバ側

/home/hogeディレクトリを作成し、hogeユーザを作る

bash

1$ sudo useradd -s /bin/bash -d /home/hoge -m hoge

hogeユーザを確認

bash

1$ cat /etc/passwd | grep hoge 2hoge:x:1001:1001::/home/hoge:/bin/bash

クライアント側

秘密鍵hogeと公開鍵hoge.pubを作成

bash

1$ ssh-keygen -t ed25519 2Enter file in which to save the key (/Users/piyo/.ssh/id_ed25519): /Users/piyo/.ssh/hoge

公開鍵をコピー

bash

1$ pbcopy < ~/.ssh/hoge.pub

サーバ側

bash

1$ sudo -s

hogeのディレクトリの.sshを作成する

# mkdir /home/hoge/.ssh

authorized_keysを作成する

# touch /home/hoge/.ssh/authorized_keys

生成した公開鍵を追加する

# nano /home/hoge/.ssh/authorized_keys

権限を700に変更

# chmod 700 /home/hoge/.ssh

権限を600に変更

# chmod 600 /home/hoge/.ssh/authorized_keys

chmod 700に設定されていることを確認。

# ls -al /home/hoge drwx------ 2 root root 4096 10月 30 17:10 .ssh

chmod 600に設定されていることを確認。

# ls -al /home/hoge/.ssh -rw------- 1 root root 248 10月 30 17:10 authorized_keys

.sshのユーザー所有権、グループ所有権をhogeにする

# chown hoge:hoge /home/hoge/.ssh

authorized_keysも同様。

# chown hoge:hoge /home/hoge/.ssh/authorized_keys

所有権が変わっていることを確認。
hoge rootでも大丈夫なので、ファイル所有権がhogeであれば問題ない。

# ls -al /home/hoge drwx------ 2 hoge hoge 4096 10月 30 17:10 .ssh
# ls -al /home/hoge/.ssh/authorized_keys -rw------- 1 hoge hoge 248 10月 30 17:10 .ssh/authorized_keys

sshdを再起動し、設定を反映する

# service sshd restart

クライアント側

ssh -l hoge -i ~/.ssh/hoge 固定IP

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

hoshi-takanori

2022/10/30 06:02

> 新規追加するユーザhogeは、piyoと同じクライアントPCを使っています。 クライアント (Mac ですか?) 上に piyo と hoge のユーザーを作って、ユーザーを切り替えて使うってことですか? > $ ssh-keygen -t ed25519 > Enter file in which to save the key (/Users/piyo/.ssh/id_ed25519): /Users/piyo/.ssh/hoge hoge ユーザーが操作してるなら、/Users/piyo/〜 になってるのは変ですね…。
hiphop365

2022/10/30 07:30

同じクライアントPCを使っているのには深い理由は無く、1人で1つのPCを使い、複数ユーザのsshができるのかを試しています。 複数人いた方が実験としてはより良いと思います。

回答2

1

ベストアンサー

サーバで新規作成されたユーザhogeがsshすると、Permission denied (publickey)になってしまいます。

chmod 700に設定されている
# ls -al /home/hoge
drwx------ 2 root root 4096 10月 30 17:10 .ssh
chmod 600に設定されている
# ls -al /home/hoge/.ssh
-rw------- 1 root root 248 10月 30 17:10 authorized_keys

ディレクトリやファイルのオーナーが root ユーザーで 700 や 600 に設定されているので、hoge ユーザーはファイルを読み込めないと思います。
/home/hoge 配下のディレクトリやファイルのオーナーを hoge ユーザーに設定するとどうなるでしょうか。

投稿2022/10/30 08:43

CHERRY

総合スコア24689

hiphop365👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

hiphop365

2022/10/30 09:15

正常にsshできました!ありがとうございます! 同じところでつまづく人が出ないように成功手順を上の質問項目にも追記しておきたいと思います。 手順: root権限で作業する $ sudo -s .sshのユーザー所有権、グループ所有権をhogeにする # chown hoge:hoge /home/hoge/.ssh authorized_keysも同様。 # chown hoge:hoge /home/hoge/.ssh/authorized_keys 所有権が変わっていることを確認。 hoge rootでも大丈夫なので、ファイル所有権がhogeであれば問題ない。 # ls -al /home/hoge drwx------ 2 hoge hoge 4096 10月 30 17:10 .ssh # ls -al /home/hoge/.ssh/authorized_keys -rw------- 1 hoge hoge 248 10月 30 17:10 .ssh/authorized_keys

0

サーバPCがわに、使用するユーザの複数の公開鍵を登録しましょう

違うユーザで接続したいと言うなら、そのそれぞれのユーザフォルダに公開鍵を登録すればいいです

投稿2022/10/30 07:22

編集2022/10/30 07:26
y_waiwai

総合スコア86007

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

hiphop365

2022/10/30 08:33 編集

確かに /home/piyo の authorized_keys に hoge の公開鍵を登録していました。 しかし、/home/hoge にauthorized_keys を作成し、公開鍵を登録しても認証に失敗(Permission denied (publickey).しました。 ログインユーザの制限もしておらず、パーミッションも適切に設定されていると思うので原因がわかりません。 root権限で作業する $ sudo -s # mkdir /home/hoge/.ssh # touch /home/hoge/.ssh/authorized_keys 公開鍵を設定する # nano /home/hoge/.ssh/authorized_keys # chmod 700 /home/hoge/.ssh # chmod 600 /home/hoge/.ssh/authorized_keys sshdを再起動し、設定を反映する # service sshd restart chmod 700に設定されている # ls -al /home/hoge drwx------ 2 root root 4096 10月 30 17:10 .ssh chmod 600に設定されている # ls -al /home/hoge/.ssh -rw------- 1 root root 248 10月 30 17:10 authorized_keys

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。