初めに
僕はssh公開鍵認証が嫌いなのでその手順を解説します。
サーバーOS
CentoOS Stream X_86_64
解説いきます
ローカルの設定
まずローカルのホームディレクトリから始めます。
[~@パソコン名]みたいなターミナルを開くと出てくるやつから設定していきます。
cd .ssh
で.sshに移動します。
mkdir sakura_vps
で鍵を作る用のディレクトリを作ります。
cd sakura_vps
sakura_vpsに移動して
ssh-keygen -t ed25519
で公開鍵と秘密鍵を作成
-fでファイル名をつけれます。
配置場所を聞かれたら
sakura_vps
を入力します。
パスフレーズを入力した方はしっかりメモをしておいてください。
次に configファイルを修正します。
.sshディレクトリに移動してもらって
vi config
configファイルの中身は
Host sample [sshログイン時に使用するので指定してください。]
HostName 111.111.111.11 [ipアドレスを入力]
User sample [sshログイン後に使うユーザーネームを入力]
IdentityFile ~/.ssh/~ [秘密鍵の場所を入力]
Port 設定したポート番号
こんな感じで修正してください
ローカル環境で
cat 公開鍵名
で公開鍵を表示しておいてください。
一般ユーザーでssh接続します。
一般ユーザーのssh接続後の設定
.sshディレクトリに移動してください。
なかったら
mkdir .ssh
で
cd .ssh
を叩いてください。
公開鍵をコピーしておきます。
vi authorized_keys
authorized_keysに公開鍵をペーストします。
フォルダやファイルに権限をつけます。
chmod 600 authorized_keys
一個上がって
chmod 700 .ssh
600・・・rootで読み書きができる
700・・・rootで読み書き実行ができる
rootユーザーの設定
公開鍵認証を有効にする
rootユーザーでログインしてもらって
cd /etc/ssh
に移動
vi sshd_config
を修正
45行目ぐらいに
#PubkeyAuthentication yes
があると思うので
PubkeyAuthentication yes
修正してください。
パスワード認証を無効化する
66行目ぐらいに
#PasswordAuthentication yes
があると思うので、
PasswordAuthentication no
に変更してください。
修正を反映する
systemctl restart sshd
パスワードが求められたら打ってください。
テストする
ローカルからsshログインしてみる
ssh ~
~はconfigファイルに書いたHostのやつを入力です。
ログインできたらオッケーです。
お疲れ様でした。
補足:
ssh ~でもログインできますが、
ssh ユーザー名@ipアドレス -i 秘密鍵の場所 -p 3304
でもログインできます。長いと思うのでssh ホスト名でいいと思います。
最後に
sshの公開鍵の認証はパスワードでの認証ができなくなるのでセキュリティ的に安全です。
大変ですが、ぜひやってみてください。
参考文献
二つの記事を参考にしました。
わかりやすかったです。ありがとうございました!