GNU/Linux >> Linux の 問題 >  >> Linux

SSH構成ファイルを使用して、さまざまなリモートサーバーへのSSH接続を管理します

SSHに少しでも精通している場合は、SSHを使用してリモートLinuxシステムに接続できることをご存知でしょう。

SSHを使用してリモートシステムに接続するのは簡単です。次のようなコマンドを使用するだけです。

ssh [email protected]_IP 

これにより、デフォルトのSSHポート22に接続されます。必要に応じてポートを指定することもできます。

サーバーが1つしかない場合、これはすべて単純明快です。サーバーのIPアドレスを覚えていない場合でも、有名なターミナルキーボードショートカットCtrl + Rを使用して履歴を逆検索し、過去に使用したSSHコマンドを見つけることができます。

ただし、管理するサーバーが複数ある場合は、事態が複雑になります。時々接続するサーバーは約10台あります。一部は本番サーバーであり、一部はテストサーバーです。

現在、これらのサーバーを追跡することは簡単ではありません。履歴からSSHコマンドを見つけても、どのIPがどのサーバーに属しているかを推測するのは困難です。

もちろん、Linode、UpCloud、DigitalOcean、Google Cloudでダッシュボードを開いて、IPを取得したり、ローカルシステムにリストを保持したりできます。

より適切で簡単な方法は、SSH構成ファイルを使用することです。

SSH構成ファイルを使用してリモートサーバーに簡単に接続する

SSH構成ファイルを使用すると、ホスト構成ごとに異なるプロファイルを作成できます。このようなプロファイルに制限はなく、できるだけ多く追加できます。

したがって、SSHを介して複数のリモートシステムに接続する場合は、SSHプロファイルを作成することで時間を節約できます。

使い方をお見せしましょう。

ステップ1:SSH構成ファイルを作成する

SSHをインストールすると、〜/.sshディレクトリが自動的に作成されます。このダイレクトには、公開鍵、秘密鍵、known_hostsファイルが含まれています。設定もここに保存されます。

少なくともUbuntuでは、SSH構成ファイルはデフォルトでは作成されません。このファイルは、次のようなtouchコマンドを使用して簡単に作成できます。

touch ~/.ssh/config

ステップ2:設定ファイルにSSHプロファイルを追加する

SSH構成ファイルができたので、VimまたはNanoを使用して編集できます。従うべき構文の例を示しましょう。

IP275.128.172.46でサーバーに接続するとします。あなたのユーザー名はアリスであり、サーバーはあなたのウェブサイトをホストするために使用されます。 SSHセキュリティを強化するには、デフォルトのSSHポート22の代わりにポート1500を使用します。

このすべての情報は、次の方法で〜/ .ssh/configファイルに追加できます。

Host website
        Hostname 275.128.172.46
        User alice
        Port 1500

情報をファイルに保存するだけです。サービスを再起動する必要はありません。

さて、このような長いコマンドを書く代わりに:

ssh [email protected] -p 1500

このコマンドを使用するだけです(タブ補完も機能します):

ssh website

上記のコマンドを実行すると、sshは〜/ .ssh/configでwebsiteという名前のホストを探します。その名前のホストが見つかると、関連するすべての情報を取得し、SSH接続の確立に使用します。

いくつか疑問に思われるかもしれませんので、ここで説明します:

  • ホスト情報を入力する際のスペースやタブのインデントの制限はありません。スペースまたはタブのインデントは、構成ファイルをわかりやすくするために使用されます。
  • ホスト名は、サーバーのIPアドレス、またはネットワーク上で解決できるホスト名にすることができます。
  • ホスト名、ユーザー、ポートなどのすべてのパラメーターはオプションです。ただし、個人的には、少なくともホスト名を保持することをお勧めします。これは、ほとんどの場合、ホスト名が必要である(そして忘れてしまう)ためです。
  • SSH構成ファイルが正しく構成されていない場合、SSH接続に使用しようとするとエラーが発生します。
  • SSH構成にパスワードを保存することはできません。簡単にアクセスできるように、公開SSHキーをサーバーに追加することをお勧めします。

ステップ3:SSH構成ファイルに複数のプロファイルを追加する

前の手順で、SSHプロファイルを追加する方法について説明しました。複数のプロファイルを追加して、次のステップに進みましょう。

SSH構成ファイルは次のようになります。

Host website
        Hostname 275.128.172.46
        User alice
        Port 1500
Host forum-server
        Hostname 275.128.172.47
        User alice

Host main-server
        Hostname 275.128.172.49

Host common-test-server
        Hostname test-server

Host *
        User root

今回は、4つの異なるSSHプロファイルを追加しました。

ホスト*に気づきましたか ファイルの最後のエントリ?このエントリを使用して、すべてのプロファイルに共通のパラメータを追加できます。そのパラメータがプロファイルに明示的に記載されていない場合。

したがって、メインサーバーのSSHプロファイルを使用しようとすると、自動的にrootユーザーになります。

ssh main-server =ssh [email protected]

SSH構成の順序

ssh構成は次の順序に従います。

  • コマンドラインオプション
  • ユーザーの構成ファイル(〜/ .ssh / config)
  • システム全体の構成ファイル(/ etc / ssh / ssh_config)

これは、入力したコマンドが優先され、〜/ .ssh / configを調べてから、/ etc / ssh/ssh_configを調べることを意味します。

したがって、プロファイルをオーバーライドする場合は、sshコマンドの-oオプションを使用してオーバーライドできます。

たとえば、次のコマンドを使用する場合:

ssh -o "User=bob" website

〜/ .ssh / config(前のステップ)で定義されたユーザーaliceの代わりにユーザーbobを使用します。

SSH構成にはまだまだたくさんあります

正直なところ、SSH構成ファイルには、1つの記事ではカバーできないものがたくさんあります。名前/IPマッチング、サブネットなどを使用できます。

この記事の範囲は、SSH構成を紹介し、さまざまなリモートLinuxシステムに簡単に接続するためのSSHプロファイルの作成を支援することでした。

SSH構成ファイルの作成中に使用できるパラメーターについて詳しくは、ssh_configのマニュアルページをいつでも参照できます。

このSSHのヒントがお役に立てば幸いです。すでにSSH構成ファイルを使用していて、気の利いたヒントがある場合は、コメントセクションで他の人と共有してください。


Linux
  1. リモートアクセスを簡素化するためにカスタムSSH接続を構成する方法

  2. sshを使用してリモートホストにファイルが存在するかどうかを確認します

  3. sed を使用して構成ファイルの変数を置き換える方法は?

  1. Linux の ssh 構成ファイルのデフォルト以外の場所

  2. 2 つの SSH サーバーの実行

  3. SSH - ~/.ssh/config ファイルに -t コマンドを含める方法

  1. SSHトンネリングを使用して制限付きサーバーにアクセスする方法

  2. 安全なファイル転送のためにSFTPコマンドを使用する方法

  3. Ssh – Sshを使用してファイルをローカルシステムにコピーし直しますか?