■ 主の PC環境一覧
OS:Windows11
CPU:Intel® Core™ i9 13900KF
Memory:64GB
GPU:NVIDIA® GeForce RTX™ 3070 8GB
■ 初めに
SSH(Secure Shell)は、セキュアな通信を提供するプロトコルであり、主にリモートシステムへのアクセスに利用されています。
SSHは通信を暗号化し、データの安全性を確保します。
これにより、ユーザーが機密情報やパスワードを送信する際に、第三者による不正アクセスや傍受から守られます。
また、認証においてはパスワードだけでなく、公開鍵認証などの高度な手法も採用され、セキュリティを一層強化しています。
これにより、ユーザーは安心してリモートサーバーにアクセスし、データの転送や管理を行うことができます。
強固なセキュリティが特徴の SSHは、ネットワーク通信における信頼性を向上させ、情報セキュリティの観点から重要な役割を果たしています。
■ Windows編
[1]OpenSSHのインストール確認(クライアント / サーバー)
# Install the OpenSSH
$ Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
---
# 実行結果
Name : OpenSSH.Client~~~~0.0.1.0
State : Installed
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
[2]OpenSSHのインストール実行(クライアント / サーバー)
# Install the OpenSSH Client
$ Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# Install the OpenSSH Server
$ Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
---
# 実行結果
Path :
Online : True
RestartNeeded : False
[3]ファイアウォールの設定(Windows Defender Firewall (WDF))
OpenSSHを起動させても、ファイアウォールが有効になっていると外部端末から接続することができません。
インストール時点で、自動的にファイアウォールの設定はされていますが念のため実行しておいても問題ありません。
そのため、SSHで使用される「ポート 22」を明示的に開放します。
OpenSSH Serverをインストールすると、自動的に「OpenSSH-Server-In-TCP」という名前のファイアウォール規則が作成され有効化されます。
これにより、ポート 22での SSH受信トラフィックが許可されます。
※ 引数の「-DisplayName」は任意の名前を付けて良いです。
$ New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName OpenSSH-Server-In-TCP
コマンドではなく、GUIから設定したい場合や既存の設定を確認したい場合
「 コントロールパネル > システムとセキュリティ > Windows Defender ファイアウォール > 詳細設定 > 受信の規則 」
から確認及び削除、新規規則追加 等が可能
[4]OpenSSH Serverを起動 / 停止 / 自動起動
# 起動
$ Start-Service sshd
# 停止
$ Stop-Service sshd
# Windows起動時、自動的に OpenSSH Serverを起動したい場合
$ Set-Service -Name sshd -StartupType Auto
[5]SSH接続
ユーザー名:使用しているPC(Windows)のユーザー名
パスワード:PCログイン時のパスワード
例)$ ssh example@127.0.0.1
$ ssh <ユーザー名>@<IPアドレス>
<username>@<hostname>'s password: ← パスワード入力後に Enter
---
# 実行結果
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.
<username>@<hostname> C:\Users\<username>
接続後のデフォルト CLI(コマンドラインインターフェース)は、コマンドプロンプトのため、Powershellを使用したい場合は、接続後に「$ Powershell
」と入力するだけで切り替えが可能。
■ Linux (Ubuntu etc…) 編
[1]OpenSSHのインストール確認(クライアント / サーバー)
# Install the OpenSSH
$ rpm -qa | grep openssh
---
openssh-askpass-3.4p1-2
openssh-3.4p1-2
openssh-server-3.4p1-2
openssh-askpass-gnome-3.4p1-2
openssh-clients-3.4p1-2
[2]OpenSSHのインストール実行(クライアント / サーバー)
# aptアップデート
$ sudo apt update
# Install the OpenSSH Client
$ sudo apt install openssh-client
# Install the OpenSSH Server
$ sudo apt install openssh-server
[3]ファイアウォールの設定(Uncomplicated Firewall (UFW))
OpenSSHを起動させても、ファイアウォールが有効になっていると外部端末から接続することができません。
インストール時点で、自動的にファイアウォールの設定はされていますが念のため実行しておいても問題ありません。
# ファイアウォールの状態確認
$ sudo ufw status
# 基本的には"無効"となっている
# Status: inactive
# ssh許可
$ sudo ufw allow ssh
[4]OpenSSH Serverを起動 / 停止 / …等
□ Debian系(Ubuntu / Debian)
Ubuntu 15.04 以降
# 起動
$ sudo systemctl start ssh
# 停止
$ sudo systemctl stop ssh
# 再起動
$ sudo systemctl restart ssh
# 設定リロード
$ sudo systemctl reload ssh
# 自動起動の有効化
$ sudo systemctl enable ssh
# 自動起動の無効化
$ sudo systemctl disable ssh
Ubuntu 14.10 以前
# 起動
$ sudo service start ssh
# 停止
$ sudo service stop ssh
# 再起動
$ sudo service restart ssh
# 設定リロード
$ sudo service reload ssh
□ Red Hat系(RHEL / Fedora / CentOS / Rocky Linux)
CentOS 7.x / 8.x
# 起動
$ systemctl start sshd.service
# 停止
$ systemctl stop sshd.service
# 再起動
$ systemctl restart sshd.service
# 設定リロード
$ systemctl reload sshd.service
CentOS 4.x / 5.x / 6.x
# 起動
$ service sshd start
# 停止
$ service sshd stop
# 再起動
$ service sshd restart
# 設定リロード
$ service sshd reload
[5]SSH接続
$ ssh <username>@<hostname>
<username>@<hostname>'s password: ← パスワードを入力して Enter
■ 最後に
SSH構築に成功し、WIndows と Linux(Ubuntu)の双方で安全で確立されたリモートアクセスが可能です。
セキュリティと利便性を兼ね備えた SSHは、ネットワーク管理やデータ転送において頼りになる存在です。
安心して利用できる環境を構築する手助けになれば幸いです。安全なコミュニケーションとシステム管理の新しい一歩を踏み出しましょう。
comment 📝