【Linux】Rocky LinuxにSSHサーバを構築する

Rocky Linux上にSSHサーバを構築して
リモートからSSHでLinuxに接続します

この記事ではRocky LinuxにSSHサーバ構築します。
最後まで読み進めると、リモートのSSHクライアントからサーバへ接続できるようになります。

目次

SSHサーバの設定と起動

sshd_conigを編集

# viで以下のファイルを開きます
$ sudo vi /etc/ssh/sshd_config

# ファイルを開いて以下の設定をコメントアウトを外します

〜〜省略〜〜
Port 22

〜〜省略〜〜
PubkeyAuthentication yes

保存してviを終了します。

SSHサーバを起動する

systemctlコマンドでSSHDサービスを起動します。

# サービスを起動します
$ systemctl start sshd

# サービスの状態を確認します
# 以下のように「Active: active (running)」と表示されていれば正常に起動しています
[user@localhost ~]$ systemctl status sshd

● sshd.service - OpenSSH server daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-02-14 11:21:07 EST; 1 day 22h ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 1106 (sshd)
      Tasks: 1 (limit: 35381)
     Memory: 2.5M
        CPU: 9ms
     CGroup: /system.slice/sshd.service
             └─1106 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

 2月 14 11:21:07 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
 2月 14 11:21:07 localhost.localdomain sshd[1106]: Server listening on 0.0.0.0 port 22.
 2月 14 11:21:07 localhost.localdomain sshd[1106]: Server listening on :: port 22.
 2月 14 11:21:07 localhost.localdomain systemd[1]: Started OpenSSH server daemon.

# 自動的にSSHサーバが起動するようにする
systemctl enable sshd

ファイヤーウォールを設定してSSH通信を許可する

ファイヤーウォールが起動しているのでSSH接続を許可する設定を行います。

#--permanent: 設定を恒久的に変更する(指定しない場合、OS再起動で元に戻る)
$ firewall-cmd --add-port=22/tcp --permanent
$ firewall-cmd --reload

これでSSHサーバ側の構築は完了です。

次に接続する側のPC(クライアント)の設定を行います

SSHサーバへ接続するクライアントの設定

SSHサーバは起動しましたが、このままではまだ接続できません。

接続するためにはクライアント側で認証用の鍵を作成して、公開鍵をSSHサーバ側へ登録する必要があります。

まずはクライアントで鍵を作成します。

認証用の鍵を作成

# sshkeygenコマンドでSSH Keyを作成します
# ssh-keygen -t [鍵の認証形式] -b [ビット長] -f [ファイル名]
# 以下のコマンドはED25519形式、ファイル名がid_rsa_rocky_ssh_keyで鍵を作成します
$ ssh-keygen -t ed25519 -f id_ed25519_rocky_ssh_key

Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_ed25519_rocky_ssh_key
Your public key has been saved in id_ed25519_rocky_ssh_key.pub
The key fingerprint is:
SHA256:fAxyodHO+N702iX7lglM6paG+DK32uZq20ZyNFW8WzQ user@MacBook-Pro.local
The key's randomart image is:
+--[ED25519 256]--+
|      ...  o.    |
|       o... . E  |
|      o+o.   o . |
|      .+=o  o .  |
|       oS.o+ o   |
|      . +.o +    |
|       * = o...o |
|      =o* *..++  |
|     .+%*+..oo.  |
+----[SHA256]-----+

これで鍵が作成されましたので、確認してみます。

作成した鍵はホームディレクトリの「.ssh」配下に保存されています。

鍵は秘密鍵と公開鍵のペアで作成されます。

秘密鍵は絶対に外に漏らさないように注意します。(家の鍵のようなもので、これを落としてしまうと誰でも家に入れてしまいます。今回の場合は家がSSHサーバですね)

% ls ~/.ssh/
id_ed25519_rocky_ssh_key      id_ed25519_rocky_ssh_key.pub

無事に作成されていることが確認できました。

公開用の鍵をSSHサーバへ登録する

次に先ほど作成した鍵のペアのうちファイル名が「〜.pub」のファイルを接続したいSSHサーバへ登録します。

# SSHサーバへ公開鍵を転送します
ssh-copy-id -i ~/.ssh/id_ed25519_rocky_ssh_key.pub [リモートユーザー]@[リモートサーバーのホスト名 or IPアドレス]

% ssh-copy-id -i ~/.ssh/id_ed25519_rocky_ssh_key user@192.168.8.128
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/hogehoge/.ssh/id_ed25519_rocky_ssh_key.pub"
The authenticity of host '192.168.8.128 (192.168.8.128)' can't be established.
ED25519 key fingerprint is SHA256:2yNTprZPz24WZBbpOv3M7KwrRuBuGproTl/v0MKH+G8.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
user@192.168.8.128's password:

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh 'user@192.168.8.128'"
and check to make sure that only the key(s) you wanted were added.

これで鍵の登録が完了しました。

サーバにSSH接続する

# SSH接続する
ssh -i ~/.ssh/ user@192.168.8.128

Activate the web console with: systemctl enable --now cockpit.socket

Last login: Thu Feb 16 11:44:52 2023 from 192.168.8.1
[user@localhost ~]$

無事に接続することができました!

SSHサーバ側でパスワード認証をOFFにする

最後にSSHサーバの設定でパスワード認証をOFFにしてSSHサーバを再起動します。

# viで以下のファイルを開きます
$ sudo vi /etc/ssh/sshd_config

〜〜省略〜〜
# コメントを外してyes -> noに変更します
PasswordAuthentication no

以上で全ての設定が完了しました。

お疲れ様でした。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次