LinuxWindows

WSLで作成したUbuntu環境にSSH接続する

はじめに

前回、WSLを使ってLinux環境を作ってたので、ホストOSからSSH接続してみる。

本記事のゴール

ホストOS(Windows)からゲストOS(Ubuntu20.04)に

  1. パスワード認証方式
  2. 公開鍵認証方式

の2つの方法でSSH接続する。

前提条件

  • WSLのインストール済み
  • Ubuntuの初期セットアップ済み

環境

  • Windows 10 Enterprise
  • RLogin version 2.25.3
    • Windows用ターミナルソフト

事前準備

RLoginのインストール

SSH接続用のターミナルソフトとして利用する。Teratermなどでも可。

1.パスワード認証方式でSSH接続する

SSH設定ファイルの変更

今回作成したUbuntu環境では、デフォルトでパスワード認証によるSSH接続が禁止されていたので、まず設定の変更を行う。(個人用なのでセキュリティは気にしない)

設定ファイルは/etc/ssh/sshd_configにあるので、まずUbuntu側のコンソールで設定の確認を行う。

$ grep 'PasswordAuthentication ' /etc/ssh/sshd_config
PasswordAuthentication no

ここでPasswordAuthenticationが noだと、パスワード認証ができないので設定の変更を行う。

それとこの後、公開鍵認証方式も行うので、このタイミングでPubkeyAuthenticationも併せて有効化しておく。

$ sudo vi /etc/ssh/sshd_config
PasswordAuthentication no
↓
PasswordAuthentication yes
#PubkeyAuthentication yes
↓
PubkeyAuthentication yes

SSH接続するには、SSHホストキーがないと怒られるのでホスト鍵を先に生成する。

# ホスト鍵生成
$ sudo ssh-keygen -A
ssh-keygen: generating new host keys: RSA DSA pECDSA ED25519

ホスト鍵を生成したらサービス起動する。

# SSHサービス起動
$ sudo service ssh start
* Starting OpenBSD Secure Shell server sshd
# ホスト鍵がない場合は以下が表示される
# sshd: no hostkeys available -- exiting.

そうするとパスフレーズが聞かれるので、必要があればパスワードを入力します。 パスフレーズを設定しない場合は、Enter連打でOK!

Rloginの設定

  1. RLogin.exeを実行する。
  2. 【新規(N)】をクリックして、以下の内容を入力する。
  3. 【OK】をクリックして、設定した接続情報を選択して、再度【OK】をクリックする。
  4. 無事にログインできたらパスワード認証によるログインは完了!!

  • エントリー(上)
    • 任意の名前
  • プロトコル
    • ssh
  • ホスト名
    • 127.0.0.1
  • TCPポート
  • ログインユーザー
    • (作成したユーザー名)
  • パスワード
    • (設定したパスワード)

2.公開鍵認証方式でSSH接続する

秘密鍵・公開鍵の作成

今回はホストOS側(Windows)で鍵を作成し、ゲストOS側(Ubuntu)に鍵を転送します。

次のコマンドを実行して、鍵を作成する。

# -t : 署名アルゴリズム
# -f : 作成するキー名
# -C : コメント
$ ssh-keygen -t ed25519 -f wsl_ubuntu -C ""

そうするとパスフレーズが聞かれるので、必要があればパスワードを入力します。 パスフレーズを設定しない場合は、Enter連打でOK!

処理が完了すると、-fで指定したファイル名の秘密鍵と拡張子.pubが付与された公開鍵が作成されます。

ゲストOSに公開鍵を渡す

まずWinSCPやRLoginの機能を用いて、ホストOSからゲストOSのユーザディレクトリに公開鍵ファイルを転送します。

次にサーバ側で以下のコマンドを順に実行し、公開鍵の設定を行います。

# 作業ディレクトリ確認
$ pwd
/home/ashitaka1963
# ディレクトリ.sshを作成
$ mkdir .ssh
# ディレクトリ.sshのパーミッションを700変更(オーナーのみ読み込み、書き込み、実行が可能)
$ chmod 700 .ssh
# 公開鍵を.sshディレクトリのauthorized_keysというファイル名でコピーする。
$ cat wsl_ubuntu.pub >> .ssh/authorized_keys
# ファイルauthorized_keysのパーミッションを600変更(オーナーのみ読み込み、書き込みのみ可能)
$ chmod 600 .ssh/authorized_keys
# 転送した鍵ファイルを削除する。
$ rm -f wsl_ubuntu.pub

RLoginでのSSH認証鍵による接続

RLoginを起動して、新規(N)をクリックする。

入力内容は基本的にパスワード認証方式と同じでパスワードのところだけ空白にする。

そして、画面右下の【SSH認証鍵】をクリックして、先ほど作成した秘密鍵を選択し、【OK】をクリックする。

接続すると鍵を作成した際にパスフレーズを設定していると入力を求められるので入力して、無事にログインできれば完了!!

おわりに

本記事のゴールとしていた、Ubuntu環境にホストからSSH接続することができました。

次回以降はこの環境を使って、いろいろやっていこうと思います。

参考