ホームページ  >  記事  >  運用・保守  >  SSH 経由でクロスサーバー Linux SysOps 管理を実現する方法

SSH 経由でクロスサーバー Linux SysOps 管理を実現する方法

WBOY
WBOYオリジナル
2023-09-28 11:04:491118ブラウズ

如何通过SSH实现跨服务器的Linux SysOps管理

SSH を通じてクロスサーバー Linux SysOps 管理を実現する方法

概要:
Linux システム管理では、多くの場合、複数のリモート サーバーを管理する必要があります。同時。 SSH (Secure Shell) プロトコルを通じて、クロスサーバー管理操作を実装できます。この記事では、SSH を使用してクロスサーバー Linux SysOps (システム運用および保守) 管理を実装する方法を紹介し、具体的なコード例を示します。

  1. SSH 概要:
    SSH は、安全なチャネルを通じてクライアントとサーバーの間でデータを送信できる、暗号化されたリモート ログイン プロトコルです。 SSH プロトコルは、ID 認証、データ暗号化、データ整合性検証などのセキュリティ メカニズムを提供し、リモート ログインのセキュリティを確保します。
  2. SSH 公開キーと秘密キーの生成:
    リモート ログインに SSH を使用する前に、SSH 公開キーと秘密キーのペアを生成する必要があります。クライアントで次のコマンドを実行して、公開キーと秘密キーを生成します。
ssh-keygen -t rsa

これにより、公開キー ファイルと秘密キー ファイルのペアが生成され、ユーザーの .ssh## に保存されます。 # デフォルトではディレクトリ。公開キーのファイル名は id_rsa.pub、秘密キーのファイル名は id_rsa です。

    パスワード不要のログインを構成する:
  1. SSH をクロスサーバー管理に使用する場合、通常はパスワード不要のログインが構成されます。具体的な操作は次のとおりです。
(1) クライアントの公開鍵ファイル

id_rsa.pub を管理対象のリモート サーバーにコピーします:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_server

このうち、

user はリモート サーバーのユーザー名、remote_server はリモート サーバーの IP アドレスまたはドメイン名です。

(2) リモート サーバーで、公開キー ファイルの内容を

~/.ssh/authorized_keys ファイルに追加します。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

(3) セットアップリモートサーバー

~/.ssh ディレクトリと ~/.ssh/authorized_keys ファイルの権限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

上記の設定を完了すると、パスワードが不要になります。ログインが実現できます。

    クロスサーバー管理に SSH を使用する:
  1. パスワードなしのログインを構成した後、SSH コマンドを使用してクロスサーバー管理操作を実行できます。次の例は参照のみを目的としています:
(1) リモート実行コマンド:

ssh user@remote_server 'command'

ここで、

user はリモート サーバー上のユーザー名です。 ##remote_server はリモート サーバーの IP アドレスまたはドメイン名、command はリモート サーバー上で実行されるコマンドです。 (2) ファイルのコピー:

ローカル ファイルをリモート サーバーにコピー:

scp local_file user@remote_server:remote_path

リモート サーバー上のファイルをローカルにコピー:

scp user@remote_server:remote_file local_path

このうち、

local_file

はローカル ファイルへのパス、remote_path はリモート サーバー上のファイルへのパス、remote_file はリモート サーバー上のファイル パスです。 server, local_path はローカル ディレクトリへのパスです。

バッチ管理:
    複数のサーバーをバッチで管理する必要がある場合は、ループ構造と SSH コマンドを使用してサーバー リストを横断して操作できます。次の例は参照のみを目的としています:

  1. #!/bin/bash
    
    servers=("server1" "server2" "server3")
    
    for server in "${servers[@]}"
    do
        ssh user@$server 'command'    
    done
  2. ここで、
servers

はサーバー リスト、user はリモート サーバー上のユーザー名、command は、リモート サーバー上で実行されるコマンドです。 上記の手順により、SSH プロトコルを使用して、サーバー間の Linux SysOps 管理を実現できます。この方法により、管理効率が向上し、手作業の負担が軽減されます。同時にコード例を検討することで、実態に応じた拡張・最適化が可能となり、管理業務の柔軟性と信頼性が向上します。

以上がSSH 経由でクロスサーバー Linux SysOps 管理を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。