おひとり様Misskey鯖構築日記《3》
今回はssh接続の準備からやっていきます。
今回ものえるさんの記事を参考に進めていきます。
まずは作業マシン(自宅PC)での設定から。
ssh-keygen -t ed25519
上記コマンドで秘密鍵が
~/.ssh/id_ed25519
公開鍵が
~/.ssh/id_ed25519.pub
以上に生成されました。
次に.ssh/config
をメモ帳で作成します。
Host (このサーバに接続する際の任意の名前) User (サーバ上に作成する作業ユーザー名) Port 22 Hostname (サーバのIPv4アドレス) IdentityFile (秘密鍵のファイルパス)
メモ帳で作成すると.txtという拡張子がついてしまうので、名前の変更で.txtを削除しておきます。
sshでサーバに接続。
初回はrootで接続します。
ssh root@(このサーバに接続する際の任意の名前) -p 22
初めて接続するサーバなので本当にここに繋いでいいのか?という内容のメッセージが表示されるのでyesと入力します。
rootのパスワードを訊かれたら、Vultrのサイトでコピーしたrootのパスワードをコピペします。
作業用ユーザ作成
rootのままで作業するのはセキュリティ上好ましくないので、作業用ユーザを作成します。
先ほど作ったconfigに入力した作業用ユーザ名と同じにします。
adduser (作業用ユーザ名)
パスワードを訊かれるので設定します。
その他の項目はデフォルトのままでも良いのでenterで飛ばします。
次に作業ユーザーを、sudoを許可するグループに追加します。
usermod -aG sudo (作業ユーザ名)
作業ユーザーに切り替えて、sshを鍵で接続できるように設定します。
sudo -iu (作業ユーザ名) mkdir .ssh chmod 700 .ssh
.sshというディレクトリを作成したら、公開鍵をこのディレクトリ内に入れるのですが、のえるさんの記事ではwindows上で公開鍵をcatコマンドで参照して、.sshディレクトリにファイルを作って公開鍵をコピペするという方法が書かれていましたが、おそらくwindows上でcatコマンドが使えているのはbashを使えるように予め設定していたのだと思います。
この段階でbashを使えるようにしてもいいのですが、再起動が必要になり手間なので別の手段でwindows上にある公開鍵をサーバに送ることにしました。
まず作業PC(Windows)のコマンドプロンプトで公開鍵のあるディレクトリに移動します。
cd .ssh
そして、scpというコマンドを使って公開鍵ファイルを先ほど作成したサーバ上の.sshディレクトリに転送します。
scp -P 22 id_ed25519.pub (作業ユーザ名)@(サーバのIPアドレス):/home/(作業ユーザ名)/.ssh
これで転送ができました。scp -P
ここのオプションは大文字のPにしないとエラーになるので注意してください。
そして、再びrootでサーバにログインして作業ユーザに切り替えます。
cd .ssh
と入力して、.sshディレクトリに移動します。
ここでls
コマンドを叩いて、.ssh内に公開鍵ファイルが転送されて来ていることを確認します。
公開鍵として使用するには「authorized_keys」というファイル名にしないといけないので、公開鍵ファイルの名前を書き替えます。
mv id_ed25519.pub authorized_keys
上記のコマンドを入力してから改めてlsコマンドを叩いてみて、名前が変わっていたらOKです。
パーミッションを変更します。
chmod 600 authorized_keys
ここで再びのえるさんの記事を参考にしながら進めていきます。
sshdの設定を変更します。
sudo nano /etc/ssh/sshd_config
ルートのログインを禁止 PermitRootLogin no
パスワードログインを禁止 PasswordAuthentication no
また、sshのポート番号を変更したい場合は任意の番号に設定します。
以上を書き終えたら書き込んで終了にします。
ここでsshdのテストをします。 間違ったままだとsshで接続出来なくなってしまうので慎重に進めましょう。
sudo sshd -t
問題なければsshdを再起動します。
sudo systemctl restart sshd
次にファイアウォールの設定をして特定のポートだけを許可します。
sudo ufw allow 22/tcp
sudo ufw enable
ここまで正しく設定出来ていれば公開鍵と秘密鍵を使ってsshでの接続が出来る筈です。
新規にコマンドプロンプトをもう一枚開いてssh接続が出来るか確認します。
ssh (任意のサーバ名)
パスフレーズを設定している場合は訊かれます。
問題なければ次の作業に移ります。
システムのアップデートをかけます。
sudo apt update
sudo apt upgrade
アップデートが完了したら今回の作業は一旦終了にします。
次回はメモリの少ない環境向けの追加設定からやっていきます。