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

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

SSH SSHクライアント )は、マシンにリモートアクセスするためのプログラムであり、ユーザーがリモートホスト上でコマンドを実行できるようにします。これは、安全でないネットワークを介して2つの信頼できないホスト間で安全な暗号化通信を提供するように設計されているため、リモートホストにログインするための最も推奨される方法の1つです。

SSH システム全体とユーザー固有の(カスタム)構成ファイルの両方を使用します。このチュートリアルでは、カスタムssh構成ファイルを作成し、特定のオプションを使用してリモートホストに接続する方法について説明します。

要件:

  1. LinuxデスクトップにOpenSSHクライアントをインストールしておく必要があります。
  2. sshを介したリモート接続に使用される一般的なオプションを理解します。

SSHクライアント構成ファイル

以下は、sshクライアント構成ファイルの場所です。

  1. /etc/ssh/ssh_config –これは、デフォルトのシステム全体の構成ファイルです。 sshクライアントマシンのすべてのユーザーに適用される設定が含まれています。
  2. ~/.ssh/config または$HOME/.ssh/config –はユーザー固有/カスタム構成ファイルです。特定のユーザーに適用される構成があります。したがって、システム全体の構成ファイルのデフォルト設定を上書きします。これは、作成して使用するファイルです。

デフォルトでは、ユーザーはパスワードを使用してsshで認証されますが、5つの簡単なステップでsshkeygenを使用してsshパスワードなしログインを設定できます。

注 :ディレクトリ~/.sshの場合 デスクトップシステムに存在しない場合は、次の権限で作成してください。

$ mkdir -p ~/.ssh
$ chmod 0700 ~/.ssh   

chmod 上記のコマンドは、ssh設定で必要とされるディレクトリに対して、ユーザーのみが読み取り、書き込み、および実行のアクセス許可を持つことができることを意味します。

ユーザー固有のSSH構成ファイルを作成する方法

このファイルは通常、デフォルトでは作成されないため、ユーザーのみの読み取り/書き込み権限で作成する必要があります。

$ touch ~/.ssh/config
$ chmod 0700 ~/.ssh/config

上記のファイルには、ホスト仕様で定義されたセクションが含まれており、セクションは、仕様で設定されたパターンの1つに一致するホストにのみ適用されます。

~/.ssh/configの従来の形式 は次のとおりです。すべての空の行と‘#’で始まる行 コメントと見なされます:

Host    host1
	ssh_option1=value1
	ssh_option2=value1 value2
	ssh_option3=value1 

Host    host2
	ssh_option1=value1
	ssh_option2=value1 value2

Host  *
	ssh_option1=value1
	ssh_option2=value1 value2

上記の形式から:

  1. ホストhost1 –は host1のヘッダー定義です 、これはホスト仕様が開始され、次のヘッダー定義である Host host2で終了する場所です。 セクションを作成します。
  2. host1 host2 コマンドラインで使用する単なるホストエイリアスであり、リモートホストの実際のホスト名ではありません。
  3. ssh_option1 =value1などの構成オプション 、 ssh_option2 =value1 value2 一致したホストに適用し、適切に整理されたフォーマットのためにインデントする必要があります。
  4. ssh_option2 =value1 value2などのオプションの場合 、値 value1 最初に考慮され、次に value2
  5. ヘッダー定義ホスト* (ここで* はパターンです– 0個以上の文字に一致するワイルドカード)は0個以上のホストに一致します。

上記の形式を引き続き考慮して、これはsshが構成ファイルを読み取る方法です。 sshコマンドを実行してhost1にリモートアクセスする場合 そのように:

$ ssh host1

上記のsshコマンドは、次のことを実行します。

  1. ホストエイリアスと一致するhost1 構成ファイルで、定義ヘッダー Host host1の下に設定されたオプションを適用します 。
  2. 次に、次のホストセクションであるホストhost2に移動します コマンドラインで指定された名前が一致しないことがわかったため、ここからオプションは使用されません。
  3. 最後のセクションであるホスト*に進みます 、すべてのホストに一致します。ここでは、このセクションのすべてのオプションをホスト接続に適用します。ただし、前のセクションですでに使用されているオプションの値を上書きすることはできません。
  4. 同じことがhost2にも当てはまります 。

ユーザー固有のSSH構成ファイルの使用方法

sshクライアント構成ファイルがどのように機能するかを理解したら、次のように作成できます。サーバー環境に適用可能なオプションと値(ホストエイリアス、ポート番号、ユーザー名など)を使用することを忘れないでください。

お気に入りのエディターで構成ファイルを開きます:

$ vi ~/.ssh/config

そして、必要なセクションを定義します:

Host fedora25
        HostName 192.168.56.15
        Port 22
        ForwardX11 no

Host centos7
        HostName 192.168.56.10
        Port 22
        ForwardX11 no

Host ubuntu
        HostName 192.168.56.5
        Port 2222
        ForwardX11 yes

Host *
        User tecmint
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        ServerAliveInterval 60
        ServerAliveCountMax 20
        LogLevel INFO

上記のssh設定オプションの詳細な説明。

  1. ホスト名 –ログインする実際のホスト名を定義します。または、数値のIPアドレスを使用することもできます(コマンドラインとホスト名の両方で許可されます)。 仕様)。
  2. ユーザー –ログインするユーザーを指定します。
  3. ポート –リモートホストに接続するポート番号を設定します。デフォルトは 22です。 。リモートホストのsshd構成ファイルで構成されているポート番号を使用します。
  4. プロトコル –このオプションは、sshがサポートするプロトコルバージョンを優先順に定義します。通常の値は「1」です および「2」 、複数のバージョンはカンマで区切る必要があります。
  5. IdentityFile –ユーザーのDSA、Ed25519、RSA、またはECDSA認証IDを読み取るファイルを指定します。
  6. ForwardX11 –X11接続がセキュリティで保護されたチャネルとDISPLAYセットを介して自動的にリダイレクトされるかどうかを定義します。 2つの可能な値があります「はい」 または「いいえ」
  7. 圧縮「はい」を使用したリモート接続中に圧縮を設定するために使用されます 価値。デフォルトは「いいえ」です 。
  8. ServerAliveInterval –タイムアウト間隔を秒単位で設定します。その後、サーバーから応答(またはデータ)が受信されない場合、sshは暗号化されたチャネルを介してメッセージを送信し、サーバーからの応答を要求します。デフォルト値は0 、メッセージがサーバーに送信されないことを意味します。または 300 BatchModeオプションが定義されている場合。
  9. ServerAliveCountMax –sshがサーバーからの応答を受信せずに送信できるサーバーアライブメッセージの数を設定します。
  10. LogLevel –sshからのメッセージをログに記録するときに使用される詳細レベルを定義します。許可される値には、QUIET、FATAL、ERROR、INFO、VERBOSE、DEBUG、DEBUG1、DEBUG2、およびDEBUG3が含まれます。デフォルトはINFOです。

上記の構成ファイルのセクション2で定義されている、リモートLinuxホスト(私の場合はCentOS 7)に接続する標準的な方法では、通常、以下のコマンドを入力します。

$ ssh -i ~/.ssh/id_rsa -p 22 [email protected]

ただし、sshクライアント構成ファイルを使用すると、次のコマンドを入力するだけで済みます。

$ ssh centos7 

その他のオプションと使用例については、sshclientconfigのマニュアルページを参照してください。

$man ssh_config

今のところは以上です。このガイドでは、Linuxでユーザー固有の(カスタム)sshクライアント構成ファイルを使用する方法について説明しました。この記事に関して私たちに返信するには、以下のフィードバックフォームを使用してください。


Linux
  1. cPanelでリモートMySQLアクセスを設定する方法

  2. LinuxでアクティブなSSH接続を見つける方法

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

  1. LinuxでSSHキーベースの認証を構成する方法

  2. リモートX接続(xdmcp対Ssh)でフォントを構成する方法は?

  3. SSH リモート アクセス VPN トンネル

  1. リモートSSHアクセスを許可しますか?

  2. ssh コマンドを使用してリモート ホストに接続する方法

  3. SSH:プライベート ネットワークで、ssh 公開鍵を使用せずにソース マシンからリモート マシンにアクセスする方法