[Linux]Mintty で SSH を使って Linux に接続する
公開日:2025-11-30
更新日:2025-11-30
更新日:2025-11-30
1. 概要
Mintty で SSH を使って Linux に接続します。
Mintty は、「Git for windows のインストール」をした時に一緒にインストールされます。
Mintty は、「Git for windows のインストール」をした時に一緒にインストールされます。
2. ファイアウォールの確認
コマンド
sudo firewall-cmd --list-all
services に ssh が表示されれば OK です。
3. sshd のステータスの確認
4. 仮想マシンの IP アドレスの確認
5. ポートフォワーディングの設定
VirtualBox マネージャー(最初に起動した画面)で仮想マシン(VM)を選択して、上部の「設定」をクリックします。
左上の「Expert」をクリックして、ネットワークの「ポートフォワーディング」をクリックします。

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

これにより、ssh で 127.0.0.1 に接続すると、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 に接続します。
最初に接続した場合、次のようなメッセージが表示されますので、yes と入力します。
以前、他の VM に対して 127.0.0.1 で接続していた場合、次のようなエラーが出る場合があります。
その場合は、c:/Users/{ユーザ名}/.ssh/known_hosts から 127.0.0.1 で始まる行を削除してください。
正常に接続ができた場合、Mintty から VM を操作することができます。
次のコマンドで 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 側で実行します。
実行すると次のように表示されるので、保存する鍵のパスを入力するか、そのまま Enter キーを押してください。
空で Enter キーを押した場合は、C:/Users/{ユーザ名}/.ssh 配下に、id_ed25519(秘密鍵) と id_ed25519.pub(公開鍵)が作成されます。
次にパスフレーズ(パスワード)を聞かれるので、パスフレーズを入力してください。省略しても作成できます。
パスフレーズを付けた場合、秘密鍵が盗まれた場合でも、サーバへの侵入を防ぐことができます。
また、パスフレーズが単純な場合、パスフレーズを解読される可能性があるため、複雑なパスフレーズにする必要があります。
このコマンドは、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 がない場合は作成します。
Windows で作成した公開鍵(id_ed25519.pub)の内容をコピーして、authorized_keys に追加します。
authorized_keys には複数の公開鍵を指定できます。
既に他の公開鍵がある場合は、その下に追加します。
(例)authorized_keys の内容
ディレクトリとファイルを所有者のみアクセスできるようにします。
デフォルトでは sshd の StrictModes が有効になっており、権限が緩い場合は、ssh の接続が拒否されます。
設定の確認方法
無効になっている場合は、
/etc/ssh/sshd_config の StrictModes yes にして、sudo systemctl restart sshd で sshd を再起動します。
コマンド
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 になっていれば OK です。
sshd を再起動します。
これで ssh で接続する時に、パスワード認証で接続できなければ OK です。
ファイル(抜粋)
PasswordAuthentication no
次のコマンドで、passwordauthentication が no になっていれば OK です。
コマンド
sudo sshd -T | grep passwordauthentication
sshd を再起動します。
コマンド
sudo systemctl restart sshd
これで ssh で接続する時に、パスワード認証で接続できなければ OK です。



