SSH接続ができるように設定

環境

ディストリについて

$ cat /etc/redhat-release

の結果は次の通り。

Rocky Linux release 9.1 (Blue Onyx)

OpenSSLについて

$ dnf list installed | grep openssl

の結果は次の通り。

openssl.x86_64 1:3.0.1-47.el9_1 @baseos
openssl-libs.x86_64 1:3.0.1-47.el9_1 @baseos

OpenSSHについて

$ dnf list installed | grep ssh

の結果は次の通り。

libssh.x86_64 0.9.6-3.el9 @anaconda
libssh-config.noarch 0.9.6-3.el9 @anaconda
openssh.x86_64 8.7p1-24.el9_1 @baseos
openssh-clients.x86_64 8.7p1-24.el9_1 @baseos
openssh-server.x86_64 8.7p1-24.el9_1 @baseos

概要

OpenSSLについて

バックポートという考えに基づいているので、基本的に使用しているディストリビューションの公式パッケージを使った方が良い。
自分で公式サイトからダウンロード → コンパイル → インストールする場合、ディストリビューションの内部でOpenSSLがどう使われているのかを把握していないと難しい。

下記リンクは、バックポートがあるから使用しているディストリの公式パッケージ使った方が良いというクチコミが書かれたページ。
Compiling Openssl 3.0.8 on Rocky Linux 9 – General – Rocky Linux Forum

ターミナルソフトについて

ターミナルソフトの選択肢はPowerShellのsshコマンド、Poderosa、TeraTermがある。

RockyLinuxで公開鍵認証のための鍵ペアを作るコマンドに、

$ ssh-keygen
があるが、これはデフォルトでrsa-sha2-512の3072bitの鍵ペアが作成される。

このデフォルトの鍵ペアを利用できるのは、2023年3月18日時点でPowerShellのsshコマンドとTeraTerm 5.0 beta1以降の2種類を確認した。Poderosa5では利用できなかった。

PowerShellを利用すると、lessコマンドの結果表示がおかしくなることがあるので、TeraTermを使った方が良いと思う。

手順

公開鍵認証のための鍵ペアを作成

サーバにて下記コマンドを実行する。

$ ssh-keygen

次の2つのファイルがホームディレクトリ内の.sshというディレクトリに作成される。

  1. id_rsa
    秘密鍵。クライアントへ移動する。WinSCPを利用すると便利。
  2. id_rsa.pub
    公開鍵。サーバで保持する。authorized_keyとファイル名を変更する。

公開鍵の名前を変更するために、次のコマンドを実行する。

$ cd ~/.ssh
$ mv id_rsa.pub authorized_keys

設定ファイルの編集

下記コマンドで設定ファイルを開く。

# vi /etc/ssh/sshd_config

下記内容へ変更する。

  • PermitRootLogin no
    rootでのログインを拒否。
  • PasswordAuthentication no
    パスワードでのログインを拒否。(公開鍵認証方式でのみログイン可能)

ターミナルソフトでの操作

クライアント側へ先ほど作成した、id_rsaファイルを移動またはコピーして、
TeraTermやPowerShellから読み込むと公開鍵認証方式でSSH接続ができる。

ちなみに、PowerShellのsshコマンドを利用する場合は、下記のコマンドで実行できる。

> ssh ユーザ名@サーバのIPアドレスまたはドメイン

PowerShellから公開鍵認証方式でSSH接続する場合、
ユーザフォルダ(C:\Users\ユーザ名\)内に、「.ssh」というフォルダを作り、
そこに上記のid_rsaファイルを置けば秘密鍵を読み込んでくれる。

コメント

タイトルとURLをコピーしました