前提
- root権限をもつ
piyo
は、事前に公開鍵認証でssh
でログインできています。 - 新規追加するユーザ
hoge
は、piyo
と同じクライアントPCを使っています。
/etc/ssh/sshd_config
の設定
PasswordAuthentication
はno
になっています。そのため、scp
を使わずにコピペで公開鍵をauthorized_keys
に追加しています。PermitRootLogin prohibit-password
になっています。
実現したいこと
公開鍵認証のssh
で複数人のユーザを登録しようとしています。
発生している問題・エラーメッセージ
サーバで新規作成されたユーザhoge
がssh
すると、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

回答2件
あなたの回答
tips
プレビュー