Linux環境におけるSSHプロトコルを用いたリモート接続構築とセキュリティ設定

OSバージョン確認とネットワークインターフェース初期化

対象システムのリリース情報を取得するには、以下のコマンドを実行します。

cat /etc/redhat-release

基本的なネットワーク設定ツールがシステムに導入されていない場合(ifconfignetstatが存在しない場合)は、追加インストールが必要です。

yum install -y net-tools

ネットワークインターフェースの起動設定を有効化します。構成ファイルは環境に応じて名称が異なりますが、/etc/sysconfig/network-scripts/ディレクトリ配下に格納されます。エディタで開き、ONBOOTパラメータをnoからyesに変更してください。

vim /etc/sysconfig/network-scripts/ifcfg-ens33

変更を反映させるにはネットワークサブシステムを再起動します。

systemctl restart network

パッケージリポジトリミラーへの変更

デフォルトの配布元が低速な場合、信頼性の高い国内ミラーサイトを登録します。ここではNetEase(163)ミラーを採用する手順を示します。

まずwgetが未インストールの場合は導入します。

yum install -y wget

既存のリポジトリ設定は安全のためバックアップを取得します。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

対象バージョン用の設定ファイルをダウンロードし、指定ディレクトリに配置します(CentOS 7の場合)。

cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
ls -l CentOS7-Base-163.repo

新しいミラー設定を適用するためにキャッシュを破棄し、更新履歴を再構築します。

yum clean all
yum makecache

SSHサーバー構築と基本動作確認

SSH(Secure Shell)は、アプリケーション層上で動作する暗号化通信プロトコルです。認証プロセスとデータ転送を保護し、管理者が安全に遠隔端末へアクセスするための標準規格となっています。

サーバー側ではopenssh-serverパッケージをインストールし、デーモンを起動させます。

yum install -y openssh-server
systemctl start sshd

プロセスが正常に稼働しているか確認します。

pgrep -a sshd
systemctl status sshd

システム起動時に自動でSSHサービスが開始されるよう永久有効化を設定します。

systemctl enable sshd

クライアント環境構築と接続テスト

Linuxホストから別マシンへ接続する場合、クライアントツールも必要となります。

yum install -y openssh-clients

基本的な接続方法は以下の通りです。ユーザー名とターゲットIPアドレスを指定します。

ssh target_user@192.168.10.50

Windows環境ではXshellやPuTTYなどの専用クライアントが広く利用されていますが、Linux環境内からの操作にはネイティブコマンドが最も効率的です。

接続エイリアスの定義(~/.ssh/config)

複数のサーバーを頻繁に切り替えて運用する際、毎回IPアドレスやポート番号を入力するのは非効率です。~/.ssh/configファイルを使用することで、簡易な別名で一貫した接続パラメータを管理できます。

該当ディレクトリに移動し、設定ファイルを作成・編集します。

mkdir -p ~/.ssh && cd ~/.ssh
touch config
chmod 600 config
nano config

ファイル内に以下のブロックを追記します。ここではweb-node-01というエイリアスを定義しています。

Host web-node-01
 HostName 47.95.8.70
 User admin
 Port 22
 IdentityFile ~/.ssh/id_ed25519

保存後、エイリアス名だけで接続が可能になります。

ssh web-node-01

公開鍵認証の設定とパスワードレス接続

定期的なパスワード入力を削減し、セキュリティレベルを高めるために公開鍵認証を導入します。

ローカルマシンのホームディレクトリで鍵ペアを生成します。現代の環境ではEd25519アルゴリズムが推奨されます。

ssh-keygen -t ed25519 -C "admin@example.com"
ls -l ~/.ssh/

生成された秘密鍵をSSHエージェントに読み込ませます(Linuxクライアント環境向け)。

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

対象サーバー上の~/.ssh/ディレクトリへ移動し、公開鍵(.pubファイルの内容)をauthorized_keysファイルへ追記・保存します。

mkdir -p ~/.ssh
cat id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

これにより、次回以降の接続実行時、対話的なパスワード入力なしでログインできるようになります。

通信ポートのカスタマイズとアクセス制御

標準のTCP 22番ポートはボットスキャンの対象となりやすいため、不明なポートへの変更は基本対策となります。SSHの設定ファイルを開きます。

vi /etc/ssh/sshd_config

ファイル内の#Port 22コメントアウトを解除し、任意の番号(例:2244)へ変更します。

Port 2244

設定を適用するため、SSHデーモンを再起動します。なお、FirewallやSELinuxの設定調整も併せて行う必要があります。

systemctl restart sshd

タグ: SSH openssh CentOS NetworkInterface KeyBasedAuthentication

5月24日 16:47 投稿