9cubed
ブログ | Tailwind | Vite | Python | Node.js | Linux | PowerShell | その他 | 将棋ウォーズ | 歌の練習
< 前の記事

Git for windows のインストール

次の記事 >

パッケージの更新

Linux

[Linux]Mintty で SSH を使って Linux に接続する

公開日:2025-11-30
更新日:2025-11-30

1. 概要

Mintty で SSH を使って Linux に接続します。
Mintty は、「Git for windows のインストール」をした時に一緒にインストールされます。

2. ファイアウォールの確認

コマンド
sudo firewall-cmd --list-all

services に ssh が表示されれば OK です。

3. sshd のステータスの確認

ssh で接続を受け付ける sshd が実行中か確認します。
コマンド
systemctl status sshd

Active に「active (running)」と表示されていれば OK です。

4. 仮想マシンの IP アドレスの確認

コマンド
ip a

実行結果


10.0.2.15 でした。

5. ポートフォワーディングの設定

VirtualBox マネージャー(最初に起動した画面)で仮想マシン(VM)を選択して、上部の「設定」をクリックします。

左上の「Expert」をクリックして、ネットワークの「ポートフォワーディング」をクリックします。


右上の「+」を押して、
127.0.0.1:22 に送信した内容が 10.0.2.15:22(VM の IP アドレス)に転送されるように入力します。


これにより、ssh で 127.0.0.1 に接続すると、VM に接続できるようになります。

6. SSH で接続

エクスプローラの何もないところで右クリック、「Open Git Bash here」で Mintty を起動します。

次のコマンドで SSH で VM に接続します。
コマンド
ssh -l {ユーザ名} {IPアドレス}

ssh {ユーザ名}@{IPアドレス}

(例) 
ssh -l admin 127.0.0.1
ssh admin@127.0.0.1

最初に接続した場合、次のようなメッセージが表示されますので、yes と入力します。
コマンド
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

以前、他の VM に対して 127.0.0.1 で接続していた場合、次のようなエラーが出る場合があります。
その場合は、c:/Users/{ユーザ名}/.ssh/known_hosts から 127.0.0.1 で始まる行を削除してください。
コマンド
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:*******************************************.
Please contact your system administrator.
Add correct host key in /c/Users/{ユーザ名}/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /c/Users/{ユーザ名}/.ssh/known_hosts:9
Host key for 127.0.0.1 has changed and you have requested strict checking.
Host key verification failed.

正常に接続ができた場合、Mintty から VM を操作することができます。

7. 公開鍵認証で SSH に接続

1. 鍵の作成

Windows で Mintty を起動して、次のコマンドで鍵を作成します。
このコマンドは、SSH で接続した VM の中ではなく、Windows 側で実行します。
コマンド
ssh-keygen -t ed25519

ssh-keygen -t ed25519 -C "admin@example.com"  # 鍵にコメントを付ける場合
※以前は RSA と言うアルゴリズムで鍵を作られていましたが、最近は ed25519 が推奨されています。ed25519 は、セキュリティー、速度、鍵のサイズ(小さい)が、RAS より優れています。

実行すると次のように表示されるので、保存する鍵のパスを入力するか、そのまま Enter キーを押してください。
空で Enter キーを押した場合は、C:/Users/{ユーザ名}/.ssh 配下に、id_ed25519(秘密鍵) と id_ed25519.pub(公開鍵)が作成されます。
コマンド
Enter file in which to save the key (/c/Users/{ユーザ名}/.ssh/id_ed25519):

次にパスフレーズ(パスワード)を聞かれるので、パスフレーズを入力してください。省略しても作成できます。
パスフレーズを付けた場合、秘密鍵が盗まれた場合でも、サーバへの侵入を防ぐことができます。
また、パスフレーズが単純な場合、パスフレーズを解読される可能性があるため、複雑なパスフレーズにする必要があります。
コマンド
Enter passphrase (empty for no passphrase):

2. VM に公開鍵の設定

VM でホームディレクトリに .ssh がない場合は作成します。
コマンド
cd ~        # ホームディレクトリへ移動
ls -al      # .ssh の有無を確認
mkdir .ssh  # .ssh ディレクトリの作成

Windows で作成した公開鍵(id_ed25519.pub)の内容をコピーして、authorized_keys に追加します。
authorized_keys には複数の公開鍵を指定できます。
既に他の公開鍵がある場合は、その下に追加します。
コマンド
cd .ssh
vi authorized_keys

(例)authorized_keys の内容
コマンド
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... admin@example.com

ディレクトリとファイルを所有者のみアクセスできるようにします。
コマンド
chmod 700 ~/.ssh                   # 所有者 4:読み込み 2:書き込み 1:実行 = 700
chmod 600 ~/.ssh/authorized_keys   # 所有者 4:読み込み 2:書き込み        = 600

デフォルトでは sshd の StrictModes が有効になっており、権限が緩い場合は、ssh の接続が拒否されます。

設定の確認方法
コマンド
sudo sshd -T | grep strictmodes

無効になっている場合は、
/etc/ssh/sshd_config の StrictModes yes にして、sudo systemctl restart sshd で sshd を再起動します。

3. 秘密鍵を使って SSH で接続

Mintty で次のコマンドで SSH に接続できます。
鍵で認証しているため、ユーザのパスワードは聞かれません。
コマンド
# Windows の .ssh にある鍵を使う場合(鍵のパスを省略できる)
ssh admin@127.0.0.1

# 鍵のパスを指定する場合(鍵が .ssh 以外のフォルダにある場合)
ssh -i C:/Users/{ユーザ名}/.ssh/id_ed25519 admin@127.0.0.1
ssh -i C:/Users/{ユーザ名}/.ssh/id_ed25519 -l admin 127.0.0.1

秘密鍵にパスフレーズを付けていた場合は、最初に鍵のパスフレーズを聞かれます。

4. パスワード認証による SSH の接続禁止

/etc/ssh/sshd_config を編集して、PasswordAuthentication を no にします。
ファイル(抜粋)
PasswordAuthentication no

次のコマンドで、passwordauthentication が no になっていれば OK です。
コマンド
sudo sshd -T | grep passwordauthentication

sshd を再起動します。
コマンド
sudo systemctl restart sshd

これで ssh で接続する時に、パスワード認証で接続できなければ OK です。
< 前の記事

Git for windows のインストール

次の記事 >

パッケージの更新

YouTube X

新着一覧

  • SCSS のインストールVite
  • Tailwind CSS のプロジェクトの作成Tailwind
  • TypeScriptのプロジェクトの作成Vite
  • Flask のインストールと動作確認Python
  • 簡易Webサーバーの作成Python
  • pipeline で文章の生成Python
  • pipeline で文章の要約Python
  • 音声から文字起こしPython
  • Node.js のインストールNode.js
  • .ps1(PowerShellスクリプト)を実行可能にするPowerShell

アーカイブ

  • 2025/12
  • 2025/11
  • 2025/10
  • 2025/09
  • 2025/08

以前のカテゴリー一覧

  • CakePHP3
  • CentOS7
  • HTML・CSS・JavaScript
  • Haskell
  • JavaScript
  • Kotlin
  • Laravel5
  • PHP
  • Python
  • Ruby
  • RubyOnRails5
  • TypeScript
  • Vue.js
  • Webサーバ講座
  • Webプログラミング講座
  • jQuery
  • linux
  • パソコン講座
  • ブログ
  • プログラミング講座
  • メモ帳作成講座
  • 数学

Copyright © 9cubed. All Rights Reserved.

プライバシーポリシー 利用規約
▲