お金をかけずにサーバーの勉強をしよう

Ubuntu Serverへの SSH接続とファイルコピー 2

2023年9月11日

メニューへ戻る

Windows PCから Teratermを使って Ubuntu Serverに SSH接続します。

Ubuntu Serverへの SSH接続とファイルコピー 1」で SSH接続について軽く触れました。

ここでは Windowsクライアントに SSHができるツールを導入しましょう。


1.Tera Termダウンロード

Windowsクライアントから Linuxサーバーへの SSH通信を行うには、日本ではこのツールが有名です。
元々のダウンロードサイトであった OSDNが非常に不安定になってしまっているので、GitHUBからダウンロードできるようにしてくれたようです。
Tera Term

2023年9月11日での最新バージョンは 4.106でした。

[teraterm-4.106.exe] がインストーラーのファイルですので、これをダウンロードしました。


2.Tera Termインストール

ダウンロードした [teraterm-4.106.exe]ファイルをダブルクリックして実行します。

[日本語] のままOKを押します。
Tera Termインストール 1

[同意する] を選択し、次へを押します。
Tera Termインストール 2

インストール先のフォルダを変える場合は変更をします。
次へを押します。
Tera Termインストール 3

インストールする物の選択です。
私は [CygTerm] はいらないんですが、ここでは全てデフォルトのままにしておきます。
次へを押します。
Tera Termインストール 4

[日本語] のまま次へを押します。
Tera Termインストール 5

Windowsのスタートメニューの枠のことですね。
変えるつもりもないので、このまま次へを押します。
Tera Termインストール 6

私はデスクトップにショートカットを作っています。
これもデフォルトのまま。
次へを押します。
Tera Termインストール 7

これまで選択したもののサマリです
インストールを押します。
Tera Termインストール 8

完了を押します。
Tera Termインストール 9

このようなアイコンがデスクトップにできました。
Tera Termインストール 10


3.キーペア作成

この作業をします。
公開鍵と秘密鍵の作成

Tera Termを立ち上げます。

キャンセルを押します。
Tera Term 鍵作成 1

メニューから [設定] - [SSH鍵生成] を選択します。
Tera Term 鍵作成 2

[鍵の種類] の選択なんですが、「ED25519が最強!!」ってネットに書いている人がいたので、私は [ED25519] を選んでいます。
生成を押します。
Tera Term 鍵作成 3

※Ubuntu Server 22.04にインストールされている OpenSSHサーバーのバージョン(8.9p1)では、RSAは古い SSH環境で使われているものとして、8.8より以降はデフォルトで不能にしているようです。
OpenSSH 8.8 のドキュメントの「Potentially-incompatible changes」という段落にこれについて書かれていました。
同ドキュメントでは ECDSA か Ed25519 が推奨とありました。

[鍵のパスフレーズ] にパスフレーズ(パスワード)を設定しておくと、後で作る秘密鍵ファイルを使う度にこのパスフレーズの入力を求められるようになります。
私は面倒臭いので空にしていますが、仕事で使う場合は設定するべきかも知れません。
公開鍵の保存を押します。
Tera Term 鍵作成 4

公開鍵ファイルの置き場所とファイル名を指定できます。
[id_ed25519.pub]ファイルの [.pub]修飾子は公開鍵を意味しています。
秘匿するべきファイルの名前が分かりやすいのもナンですし、自分の中だけで分かりやすく、他の人には分かり辛いファイル名にするのも一手かと思います。
(ただし [.pub]はつけておくこと)
保存を押します。
Tera Term 鍵作成 5

秘密鍵の保存を押します。
Tera Term 鍵作成 6

こちらは本当に隠しておくべきものなので、パスフレーズが空だとこのように確認ダイアログが出ます。
はいを押します。
Tera Term 鍵作成 7

公開鍵ファイルと同様に保存しますが、ファイル名を変えた場合は、秘密鍵ファイルも同じ名前に変更して下さい。
保存を押します。
Tera Term 鍵作成 8

これら 2つのファイルができました。
Tera Term 鍵作成 9

閉じるを押します。
Tera Term 鍵作成 10


4.公開鍵をサーバーに配置

この作業をします。
公開鍵をサーバーに配置

接続先は OpenSSHをインストールしてある Ubuntu Server 22.04.3です。
(他の Linux OSのどれも手順は同じでしょうが)

私の環境の Ubuntu Server 22.04.3 の IPアドレスは [192.168.1.108]、マシン名が [UbuntuServer2204-2] で運用していますので、以降ご承知おき下さい。

どうやって公開鍵ファイルを Ubuntu Serverに持っていくかは個々人の好みです。
仕事の場合ではサーバー管理者にファイルを渡して登録してもらうとかするかも知れません。

以下は Tera Termの SCP機能を使う場合の手順になります。

メニューから [ファイル] - [SSH SCP] を選択します。
SCPで効果鍵をサーバーに配置 1

上の段がファイルを送信する方、下の段がファイルを受信する方です。
上の段の [From:] に送信対象の公開鍵ファイル [E:¥work¥id_ed25519.pub] と入力(または選択)し、[To:] に Ubuntu Serverの [subro]ユーザーのホームディレクトリにある [.ssh]ディレクトリを入力しました。
Sendを押します。
SCPで効果鍵をサーバーに配置 2
エラーが出なければ送信はできています。

次に、Ubuntu Serverの [/home/subro/.ssh/authorized_keys]ファイルに今送ったファイルの内容を追記しないといけません。

一度だけ公開鍵認証ではなくパスワード認証で Ubuntu Serverにログインして、この作業を行います。

メニューから [ファイル] - [新しい接続] を選択します。
SCPで効果鍵をサーバーに配置 3

[ユーザー名:] に [subro]ユーザーを、[パスフレーズ:] にログインパスワードを入力します。
[認証方式] に [プレインパスワードを使う] を選択し、OKを押します。
SCPで効果鍵をサーバーに配置 4

接続先のサーバーがこの Tera Termにとって初めての場合は、この画面で「接続して良いサーバー(怪しくないとこ)?」って聞かれます。
[このホストをknown_hostsリストに追加する] にチェックを入れておくと、次回以降このサーバーにログインするときは聞かれなくなります。
続行を押します。
SCPで効果鍵をサーバーに配置 5

ログインできました。
SCPで効果鍵をサーバーに配置 6

[/home/subro/.ssh/authorized_keys]ファイルに追記します。

[.ssh]ディレクトリに移動します。
subro@UbuntuServer2204-2:~$ cd .ssh

ファイルのリストを見ます。先程 SCPでコピーした公開鍵ファイル[id_ed25519.pub]ファイルがあります。
subro@UbuntuServer2204-2:~/.ssh$ ls -l
合計 8
-rw------- 1 subro subro 99  8月 25 10:52 authorized_keys
-rw-r--r-- 1 subro subro 98  9月 11 11:05 id_ed25519.pub

リダイレクトを使って[authorized_keys]ファイルに追記します。
subro@UbuntuServer2204-2:~/.ssh$ cat id_ed25519.pub >> authorized_keys

いらなくなった[id_ed25519.pub]ファイルを削除します。
subro@UbuntuServer2204-2:~/.ssh$ rm id_ed25519.pub

subro@UbuntuServer2204-2:~/.ssh$ ls -l
合計 4
-rw------- 1 subro subro 197  9月 11 14:13 authorized_keys

ログアウト
subro@UbuntuServer2204-2:~/.ssh$ exit

これで公開鍵をサーバーに配置する作業が完了しました。


5.公開鍵認証での SSH接続

Tera Termを起動して下さい。

[ホスト:] に Ubuntu Server の IPアドレスを入力します。
[サービス:] に [SSH] を選択し、OKを押します。
公開鍵認証での SSHログイン 1

今回は [ユーザー名:] だけ入力して、[パスフレーズ:] は空にしておきます。
[認証方式] に [RSA/DSA/ECDSA/ED25519鍵を使う] を選択し、[秘密鍵:] に秘密鍵ファイルの [E:¥work¥id_ed25519] を選択します。
OKを押します。
公開鍵認証での SSHログイン 2

パスワード無しでログインできました。
公開鍵認証での SSHログイン 3
今回限りの接続に特有の共有暗号鍵を使った暗号化通信が行われるようになります。

この状態。\(^o^)/
共通鍵による暗号化通信


6.SCPによるファイル転送

別立てにしていますが、上で公開鍵ファイルを転送したのと全く同じです。

転送対象はこの [E:¥work¥aaa.txt]ファイル。
SCP転送 1

メニューから [ファイル] - [SSH SCP] を選択します。
SCP転送 2

必要事項を入れて、Sendを押します。
SCP転送 3

転送できました。

subro@UbuntuServer2204-2:~$ cat aaa.txt
あああああああああ



==========
Tera Termを使って、公開鍵認証による暗号化通信をやってみました。

これで Linuxサーバーの黒い画面を Windows上で堪能できるようになったというものです。

Tera Termのチームには申し訳ないですが、暫く使っていると「Linuxクライアントのターミナル(端末)のが楽だな…」とか思うようになってしまいます。

Windows 11を持っていないので Windows Tarminalを使ったことがないんですが、あれがあると Tera Termもいらなくなるんですかねぇ。


次回「Ubuntu Serverへの SSH接続とファイルコピー 3」では Linuxクライアントから Ubuntu Serverに SSHログインしてみます。


7.(番外)コマンドプロンプトで sshコマンドを使う

ご存知の方もいらっしゃると思いますが、Windows 10には OpenSSHが入っています。
多分 Windows 11でも同じだと思います。(持ってないので知らんけど)

これで 1つ独立したページを書こうと思っていたんですが、実際にやってみると Linuxの sshコマンドと全く同じ手順でできましたので、「Ubuntu Serverへの SSH接続とファイルコピー 3」を真似してコマンドプロンプトないしは Powershellの画面でやってみて下さい。

公開鍵ファイル・秘密鍵ファイルの置き場所のデフォルトは、
[C:¥Users¥ユーザー名]フォルダになります。

ただし Windowsには ssh-copy-idコマンドがありませんのでご注意下さい。