Tera Termを利用したSSH鍵の生成方法とサーバーへのアクセス

📖 この記事は約 16 分で読めます。
概要

Windows端末やmacOS端末からLinux Ubuntu Serverへリモート接続する方法を紹介します。リモートアクセスにはサーバー側で暗号化に対応したOpenSSHをクライアント側ではTera Termを使い解説します。これによりセキュアなSSH接続を可能にし、クライアントとサーバー間のトラフィックを外部からの盗聴・攻撃などから守ってくれます。

管理人

本記事の読者層は以下の方を想定しています。

本記事の読者層
  • Windows/macOSからサーバーへリモート接続を行いたい方
  • リモートサーバーを立ち上げたい方
目次

Ubuntu(Linux)サーバー側のSSH接続設定

WindowsのTera TermやmacOSのTerminalから、Linux Ubuntu Serverへリモート接続するには、まずサーバー側(Ubuntu)にSSH接続を受け付ける設定が必要です。

遠隔地からサーバー機へのリモート接続する方法には以下2種類あります。

ポイント

リモート接続する2つの方法

  • ①23番ポートを利用した「telent接続」
  • ②22番ポートを利用した「SSH接続」

①の前者は全データが暗号化されずにデータが送受信されます。

②の後者はパスワード情報を含めてすべてのデータが暗号化されます。

このため、イントラネット内通信(内側のネットワーク)であればtelent接続でも良いですが、ネットワーク間の接続通信は、よりセキュアなSSH接続が推奨されます。

セキュアなSSH接続する方法

SSH接続のために、遠隔操作の対象となるサーバー側に「Open SSH server」をインストールします。

実行例

$ sudo apt update
$ sudo apt install openssh-server

これにより外部からSSH接続できるようになり、また外部へSSH接続できるようになります。

(注)サーバー機は Linux Ubuntu 22.04/24.04/26.04 LTS環境下で動作確認しています(Ubuntu 18.04/20.04 LTSは既にサポート終了のため、現行LTSバージョンのご利用を推奨します)。

Windowsの場合:SSH接続のクライアント側の設定

次にクライアント側からサーバー側へSSH接続を使ってアクセスします。

SSH接続可能なアプリケーションは各OSで用意されており、Windows では「Tera Term」を、macOSでは「Terminal」を利用して接続します。

次にその方法を解説します。

ターミナルエミュレーター「Tera Term」にて接続する方法

Windowsオンラインソフトがダウンロードできる定番サイト「窓の杜」のTera Term配布ページ、またはTera Term公式サイト(GitHub)から日本語版をダウンロードします(2026年9月時点の最新版は5.7.0です)。

スタンドアローンのソフトなのでZIPファイルを解凍するだけでインストール等は不要です。

Telnetとシリアル接続にも対応したこのターミナルエミュレーター「Tera Term」でTCP/IPでホストへのアクセスを試みます。

TCP/IPを選択
  • ホスト:サーバー側のホスト名 or IPアドレスを入力
  • サービス: SSH
  • SSHバージョン:SSH2
  • (SSH2は、SSH1の貧弱性を修正した新しいプロトコルです。)

次に、サーバー側のユーザー名とパスワードを入力することで、SSH接続が確立します。

これにてリモート環境の構築が完了しました。

次に、セキュアなSSHキーを交換することで暗号化通信を行います。

Tera TermのSSH鍵生成の方法

STEP1 TeraTerm上でSSH鍵を生成

Tera Termのメニューから「設定」→「SSH鍵生成」を選択してクリックすると、下記の画面が表示されます。

「TTSSH (Tera Term SSH) : 鍵生成」画面で「鍵の種類」としてED25519を選択し「生成」ボタンを押します。

他の鍵の種類とビット数の場合は下記を参照のこと。

RSA1・DSAはセキュリティ上脆弱で、現在のOpenSSHでは事実上使用できません。現在はED25519を使用するのが標準的で、古いサーバーとの互換性が必要な場合のみRSA(4096ビット以上)を使用してください。

鍵名ビット数説明
RSA1 (Rivest Shamir Adleman) 1024 SSHバージョン1で使われているが、本バージョンはセキュリティ
上安全とはいえない。
RSA2048SSHバージョン2. SSH1バージョンの改良型
DSA(Digital Signature Algorithm)1024
ECDSA
(Elliptic Curve Digital Signature Algorithm)
256
284
521
楕円曲線DSA
セキュアな方法

ED25519の意味は?
ED25519とは、楕円曲線暗号(Edwards-curve Digital Signature Algorithm)を用いた、現在標準的に推奨されている公開鍵暗号方式です。
RSAやDSAと比べて鍵のサイズが小さく、生成・署名の速度や安全性にも優れています。

STEP2 公開鍵と秘密鍵の保存

秘密鍵の保存

生成後に下図のような表記となり、「鍵のパスフレーズ」と「パスフレーズの確認」部分に同じパスを入力します。

今回は空のパスフレーズで生成しておきます。(→後でパスワードフリーでアクセスできるようになります。)

その後、「公開鍵の保存」をクリックします。

「id_ed25519.pub」というファイルができるのでこちらを任意のフォルダーに保存します。

以前、別のサーバーですでに作成されている場合はid_ed25519_2.pubと保存して頂いてもOK.

公開鍵の保存

同様に「秘密鍵の保存」を押すと「id_ed25519」というファイルもできるのでこちらも任意のフォルダーに保存します。

別のサーバーですでに作成されている場合はid_ed25519_2と保存して頂いてもOK.

以下のファイルを生成
公開鍵「id_ed25519.pub」:サーバー側に送る鍵
秘密鍵「id_ed25519」:クライアント側で保持する鍵

STEP3 公開鍵をサーバー側へ転送

次に、SSHの鍵(公開鍵「id_ed25519.pub」)の転送を行います。

TeraTerm windows上へ生成した公開鍵「id_ed25519.pub」をドラッグアンドドロップすると「ファイル転送を行いますか?」というメッセージが表示されるので、「SCP」をクリックし、ファイルを転送します。

このとき転送先は空で大丈夫です。この場合は転送先が現在のホームディレクトリ上にファイルができているはずです。

その後、ファイルを転送が完了したら、コマンド操作で公開鍵「~/id_ed25519.pub」を「~/.ssh」ディレクトリ内へ移動。

$ mv ~/id_ed25519.pub ~/.ssh

のように移動しておきます。すでにフォルダー内に公開鍵「id_ed25519.pub」を以前どこかで生成され残っている場合は削除しておくことをお勧めします。

STEP4 公開鍵の統合とサーバー側へ登録

「.ssh」フォルダに移動して、id_ed25519.pubをauthorized_keysに統合します。

$cd ~/.ssh
$cat id_ed25519.pub>> authorized_keys

鍵を統合したら、パーミッション(権限)の設定を必ず行ってください。 OpenSSHは.sshディレクトリやauthorized_keysの権限が緩すぎると、鍵が正しくても認証を拒否する仕様になっています。

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

パーミッションが原因でログインできない場合
鍵は正しいはずなのに「Permission denied (publickey)」と表示される場合、.sshディレクトリやauthorized_keysのパーミッションが正しく設定されていないことが原因のケースが多くあります。上記のchmodコマンドを再度実行して確認してください。

ここで、統合理由等に関しては以下のリンクを参照ください。

保存したファイル名が違っている場合
cat id_ed25519_2.pub>>authorized_keys
として頂ければ大丈夫です。

統合が終了した後は、「id_ed25519.pub」は混乱の原因になるので削除してください。

最後に再度Tera termでもう一度ログインします。

このとき、通常の「ユーザー名」と「パスワード」を入力して、秘密鍵「id_ed25519」を選択してログインできるかと思います。

以上で確認終了です。

STEP5 ログインの確認

この設定をソフトに覚えさせるために、Tera Termのメニューから「設定」→「SSH認証」を選択してクリックします。

その後に設定を保存すると、次からはTera termを起動後にパスワードフリーでリモートサーバーにアクセスできます。

その後、Tera Termのメニューから「設定」>「設定の保存」からこれらの設定を[teraterm.ini]ファイルに保存しておきます。

macOSの場合:SSH接続のクライアント側の設定

macOS 「Terminal」から接続する方法

macOSのTerminalから以下のsshコマンドを下記のようにタイプして、サーバー機へリモートアクセスを行います。

username : サーバー側のユーザー名
hostserver:サーバー側のホスト名 or IPアドレスを入力

$ ssh username@hostserver

基本操作はLinuxの場合と同じなので以下のSSH通信の鍵キー交換を参照ください。

macOSでED25519鍵を作成してパスワードフリーでログインする方法

Windows側(Tera Term)と同様に、macOSでも鍵認証を設定できます。macOSのTerminalにはssh-keygenコマンドが標準で用意されているため、追加のソフトは不要です。

$ ssh-keygen -t ed25519

実行すると保存先(既定は~/.ssh/id_ed25519)とパスフレーズの入力を求められます。パスフレーズは空のままEnterでも構いません(Windows側の解説と同様、パスワードフリーでアクセスできます)。

生成した公開鍵をサーバー側へ転送し、authorized_keysに登録します。ssh-copy-idコマンドを使うと、転送と登録を1つのコマンドでまとめて行えます。

$ ssh-copy-id -i ~/.ssh/id_ed25519.pub username@hostserver

登録が完了したら、以下のコマンドでパスワードなしにログインできることを確認してください。

$ ssh -i ~/.ssh/id_ed25519 username@hostserver

Windows側と同じく、.sshディレクトリとauthorized_keysのパーミッションが正しいことが前提です(サーバー側の設定は共通のため、上記STEP4のパーミッション設定を参照してください)。

SSH(Secure SHell Protocol) とは
SSHはポート番号22で接続する暗号化通信です。
Permission denied (publickey, password) のように出た場合、SSH (Secure SHell Protocol) キーが必要な場合がある。

外部からサーバーへ接続できない場合の対応方法

まれではありますが、Tera Termでアクセスできない。または、macOSのterminalで上記のようにリモートサーバーへ接続できない場合があります。

このときは、以下の原因を疑ってみてください。

外部サーバーへ接続出来ない場合の対処方法
①SSHポートが空いていない。
②サーバーのアドレス名が違っている。
③ネットワーク接続が切れている。
④(鍵認証の場合).sshディレクトリやauthorized_keysのパーミッションが正しくない。

pingコマンドを使って確認

WindowsのPowerShellなどを利用pingが飛ぶか確認してみてください。

サーバーアドレス(たとえば、「192.168.12.1」)へのアクセスができていれば下記のようになる。

アクセスできる場合

$ping 192.168.12.1
192.168.12.1 に ping を送信しています 32 バイトのデータ:
192.168.12.1 からの応答: バイト数 =32 時間 <1ms TTL=255
192.168.12.1 からの応答: バイト数 =32 時間 <1ms TTL=255
192.168.12.1 からの応答: バイト数 =32 時間 <1ms TTL=255
192.168.12.1 からの応答: バイト数 =32 時間 <1ms TTL=255

192.168.12.1 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 0ms、平均 = 0ms

と表示されます。macOSの場合は、Terminalコマンドからの入力になります。

返答が帰ってくる場合には、SSHポートが空いていない場合があります。

ポートが空いていない場合は、opensshが正しくインストールされているか確認してみてください。

以下を参照してネットワーク接続があるか、ポート番号が空いているかをご確認ください。

アクセスできない場合

$ping 192.168.12.1
192.168.12.1 に ping を送信しています 32 バイトのデータ:
192.168.12.1 からの応答: 宛先ホストに到達できません。
192.168.12.1 からの応答: 宛先ホストに到達できません。
192.168.12.1 からの応答: 宛先ホストに到達できません。
192.168.12.1 からの応答: 宛先ホストに到達できません。

192.168.12.1 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、

こちらで返答が帰ってこない場合には、servername もしくはIPアドレスが違っている可能性があります。

③の場合、接続元のクライアント機と接続先サーバー機、両方がネットワークに接続されているか、接続先のサーバー機が動いているかどうかも確認してみてください。

またFirewall等が働いている可能性もあるので確認してみましょう。

まとめ

本記事のまとめ

Windows・macOSともに、Tera TermやTerminalを使ってLinux Ubuntu Serverへ暗号化されたSSH接続を確立する方法を紹介しました。

  • 遠隔地からサーバーへのリモート接続には、暗号化された「SSH接続」がセキュアな接続方法です。
  • WindowsとmacOSともに、SSH接続の鍵には、現在標準的に推奨されているED25519を利用するのが安全です(DSAは非推奨・RSAは互換性維持用)。

次回の記事をご期待下さい。どうぞよろしくお願いいたします。

関連リンク

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

コメント

コメント一覧 (1件)

コメントする

目次