さくらVPS Ubuntu 公開鍵暗号設定
Q&A
Closed
構築環境
クライアント:windows10
sshクライアントソフト:RLogin
ホストサーバー:さくらのVPS
OS:Linux ubuntu20.04
ユーザー root/ubuntu/sample
解決したいこと
・ssh公開鍵認証方式を行って
「sample」というユーザーのみが鍵を使用してログインできるようにしたい。
・いかなるユーザーもパスワードでのログインを許可したくない。
発生している問題・エラー
公開鍵を使用し、ユーザー「sample」でログインできるようになったが、
同時にパスワードでのログインもできてしまう。(ユーザーが「ubuntu」「sample」どちらの場合でも)
右記ページ( https://soji256.hatenablog.jp/entry/2021/03/04/070000 )を参考に
「ssh -v sample@111.222.333.444(ホストIPアドレス)」のテストを行った。
ページ内解説によると、
debug1: Authentications that can continue: password
上記のように password になっている場合、サーバ側で公開鍵認証が許可されておらず、 パスワード認証のみが有効になっている状態を意味する。
本来想定される出力は例えば以下のような感じ。
debug1: Authentications that can continue: publickey,password設定などが正しいにも関わらず password のみになっている場合、 ポート番号を変更(例えば 2222 などに)することで解消される場合がある。
とのことだが、実行結果にそれらしい表示がされない。
sample@ik1-314-17390:~$ ssh -v sample@111.222.333.444
OpenSSH_8.2p1 Ubuntu-4ubuntu0.1, OpenSSL 1.1.1f 31 Mar 2020
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to 111.222.333.444 [111.222.333.444] port 22.
debug1: Connection established.
debug1: identity file /home/sample/.ssh/id_rsa type -1
debug1: identity file /home/sample/.ssh/id_rsa-cert type -1
debug1: identity file /home/sample/.ssh/id_dsa type -1
debug1: identity file /home/sample/.ssh/id_dsa-cert type -1
debug1: identity file /home/sample/.ssh/id_ecdsa type -1
debug1: identity file /home/sample/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/sample/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/sample/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/sample/.ssh/id_ed25519 type -1
debug1: identity file /home/sample/.ssh/id_ed25519-cert type -1
debug1: identity file /home/sample/.ssh/id_ed25519_sk type -1
debug1: identity file /home/sample/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/sample/.ssh/id_xmss type -1
debug1: identity file /home/sample/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_8.2p1 Ubuntu-4ubuntu0.1
debug1: match: OpenSSH_8.2p1 Ubuntu-4ubuntu0.1 pat OpenSSH* compat 0x04000000
debug1: Authenticating to 111.222.333.444:22 as 'sample'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:Bum1Zn8OFjEDt9zohsDF6EOLoG3r2GpU4WqRWCq30Ak
The authenticity of host '111.222.333.444 (111.222.333.444)' can't be established.
ECDSA key fingerprint is SHA256:Bum1Zn8OFjEDt9zohsDF6EOLoG3r2GpU4WqRWCq30Ak.
なお、ポート番号を2222に変更も試みたが、変化なかった。
自分で試したこと
ユーザーsampleの追加
$ sudo adduser sample
$ sudo gpasswd -a sample sudo
参考ページ
https://qiita.com/tklmrew/items/82551e68b3f1f691c3a5
https://qiita.com/white_aspara25/items/c1b9d02310b4731bfbaa
サーバー側の鍵設定
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys
authorized_keys に公開鍵の文字列を貼り付け
参考ページ
https://knowledge.sakura.ad.jp/3543/
sshd_configの設定
・PermitRootLogin no
・PubkeyAuthentication yes
・PasswordAuthentication no
・PermitEmptyPasswords no
・AllowUsers sample@[IPアドレス]
→全てコメントの「#」は外した。
→AllowUsers sample@[IPアドレス]は一番下の行に追記した。
設定後、反映コマンドとreboot
$ sudo systemctl restart sshd
$ sudo reboot
参考ページ
https://www.server-memo.net/server-setting/ssh/allow-users.html
クライアント側の鍵設定
.ssh フォルダ
id_rsa 鍵ファイル それぞれファイルのプロパティ→セキュリティから「所有者を自分のみ」に設定。