環境
ディストリについて
$ 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というディレクトリに作成される。
- id_rsa
秘密鍵。クライアントへ移動する。WinSCPを利用すると便利。 - 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ファイルを置けば秘密鍵を読み込んでくれる。