はじめに
前回仮想Linuxサーバの立ち上げに成功したため、今回はTeraTermで操作できるようにSSH接続のための設定を行っていこうと思います。これまでの業務では、Linux環境への接続、操作はマニュアルに沿って操作するのみであったため、理解が深められると嬉しいです。
事前情報
- Windows 11 Home
- VMware Workstation Pro
- Rocky Linux 10
- ネットワーク方式:NAT
- 接続元:Windowsホスト
- 接続先:Rocky Linuxゲスト
SSHについて
・SSH(Secure Shell)
ネットワーク経由で遠隔のコンピュータを安全に操作するための通信プロトコル
・SSHクライアント
接続する側のソフト(今回は Tera Term)
・SSHサーバー
接続を受け付ける側の機能(今回は Rocky Linux上のsshd※)
※sshd - 接続要求を受け付けるデーモン(バックグラウンドで動き続けるプログラム)
<主な機能>
①22番ポートで接続要求を待つ
②接続してきた相手を、パスワードや公開鍵等で認証する
③通信内容を暗号化する
④ログインしたユーザーの権限でコマンドを実行させる
⑤接続・認証の記録をログに残す
(NAT - VMが外部ネットワークへ通信するとき際にVMのIPアドレスをWindowsホスト側の通信として変換する機能)
TeraTermのインストール
以下の記事のとおり実施しました。
-
@risuracer(sima risu)様
最新のTeraTermをダウンロードする(2026年7月版)
Tera Term 5.6.2-x64 をダウンロード
Tera Term github
#TTSSH - Tera TermでSSH接続を行うための機能
#CygTerm+ - Windows上のCygwin環境とTera Termを連携させるための機能
#TeraTerm Menu - Tera Termの起動や、接続先・マクロなどの呼び出しを補助するメニュー機能
#TTProxy - HTTPプロキシやSOCKSプロキシを経由して、SSH接続するための機能
#Cygwin - Windows上でLinux/Unix風のコマンドや環境を使えるようにするソフトウェア群
Linux側のネットワーク設定
Linux側のSSHサーバが機能しているか確認します。
①Rocky LinuxのIPアドレスを確認
hostname -I
#-I … IPアドレスを表示
→ 確認OK
②SSHサーバーが入っているか確認
rpm -q openssh-server
→ インストール済
③SSHサーバーを起動し、自動起動も有効化
sudo systemctl enable --now sshd
#enable … 自動起動する設定ON
#--now … 設定だけでなく今すぐ起動(startを含んでいる)
④起動状態を確認
systemctl is-active sshd
systemctl is-enabled sshd
#is-active … サービスが起動状態か
#is-enabled … サービスがOS再起動時に自動起動する設定か
⑤firewallを起動し、SSHを許可
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
sudo firewall-cmd --list-services
#--permanent … 再起動後も残る設定
#--add-service=ssh … sshサービスを通信許可リストに追加
#--reload … 設定ファイルの読み直し
#--list-services … 現在許可されているサービスの一覧を表示
→ 「Warning: ALREADY_ENABLED: ssh」 OK
→ 「cockpit dhcpv6-client ssh」 OK
ssh以外の2つは何か
#cockpit - Linuxサーバーをブラウザで管理するためのWeb管理画面「Cockpit」用
ブラウザから https://(Rocky LinuxのIPアドレス)/:9090 にアクセスして、
サービス状態、ログ、ストレージなどを確認可能
#dhcpv6-client - IPv6でIPアドレスやネットワーク設定を自動取得するための通信を許可

Tera Termでの接続(パスワード認証)
初回接続時のSSHサーバーのホスト鍵確認
「このホストをknown hostsリストに追加する」はチェックしたまま「続行」を選択
※鍵指紋ハッシュアルゴリズム … 短くしたホスト鍵(=指紋)の表示形式。
通信の暗号方式を変更するものではない。今回は現在標準的なSHA256を選択

接続確認
静的ホスト名が設定されていなかったため、設定
hostnamectl --static
sudo hostnamectl set-hostname xxxxxxxxxx
再起動しても動作するか確認
sudo reboot
sshdおよびfirewallの設定が保存されたままであることを確認
systemctl is-active sshd
systemctl is-enabled sshd
sudo firewall-cmd --list-services
Tera Termでの接続(公開鍵認証)
Tera Termにて公開鍵、秘密鍵を作成し、Linuxサーバに公開鍵を渡して公開鍵認証で接続可能にする
鍵の種類等を入力し、秘密鍵と公開鍵をそれぞれ保存する

#bcrypt KDF - 秘密鍵に設定したパスフレーズをもとに、秘密鍵ファイルを暗号化・保護する仕組み
#公開鍵 → .pub
#秘密鍵 → 拡張子なし
公開鍵をLinuxへ登録
所定の隠しディレクトリに公開鍵を記録するファイルを作成
/home/ユーザー名/.ssh/authorized_keys
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ls -l ~/.ssh/authorized_keys
#権限
所有者:グループ:その他
r = read = 4
w = write = 2
x = execute = 1
作成した公開鍵を上記ファイルに追記し、確認
echo (作成した公開鍵) >> ~/.ssh/authorized_keys
cat ~/.ssh/authorized_keys
※(作成した公開鍵)の部分は、公開鍵.pubファイルに保存されたssh-ed25519 AAAA...から始まる1行全体に置き換える。
#>> … 出力先ファイルの末尾へ追記するリダイレクト記号。ファイルがなければ新規作成
公開鍵認証で接続できたことを確認
sudo journalctl -u sshd -b --no-pager
#journalctl … ジャーナル(ログ)を閲覧
#-u … 特定のサービスに絞る
#-b … 今回のOS起動後に限る
#--no-pager … lessなどの画面送り機能を使わず、標準出力へそのまま表示
感想、次回に向けて
- 公開鍵認証のために必要な手順を理解できてよかった
- 今はNATネットワーク内で実験しているため、ブリッジ接続やほかの経路についても確認したい
- サービスの起動、アプリのインストールなどLinuxの基本操作について学びたい
- トラブルシューティングに必要な手段をまとめたい










