SSH (SSHクライアント )は、マシンにリモートアクセスするためのプログラムであり、ユーザーがリモートホスト上でコマンドを実行できるようにします。これは、安全でないネットワークを介して2つの信頼できないホスト間で安全な暗号化通信を提供するように設計されているため、リモートホストにログインするための最も推奨される方法の1つです。
SSH システム全体とユーザー固有の(カスタム)構成ファイルの両方を使用します。このチュートリアルでは、カスタムssh構成ファイルを作成し、特定のオプションを使用してリモートホストに接続する方法について説明します。
要件:
- LinuxデスクトップにOpenSSHクライアントをインストールしておく必要があります。
- sshを介したリモート接続に使用される一般的なオプションを理解します。
SSHクライアント構成ファイル
以下は、sshクライアント構成ファイルの場所です。
-
/etc/ssh/ssh_config
–これは、デフォルトのシステム全体の構成ファイルです。 sshクライアントマシンのすべてのユーザーに適用される設定が含まれています。 -
~/.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
上記の形式から:
- ホストhost1 –は host1のヘッダー定義です 、これはホスト仕様が開始され、次のヘッダー定義である Host host2で終了する場所です。 セクションを作成します。
- host1 、 host2 コマンドラインで使用する単なるホストエイリアスであり、リモートホストの実際のホスト名ではありません。
- ssh_option1 =value1などの構成オプション 、 ssh_option2 =value1 value2 一致したホストに適用し、適切に整理されたフォーマットのためにインデントする必要があります。
- ssh_option2 =value1 value2などのオプションの場合 、値 value1 最初に考慮され、次に value2 。
- ヘッダー定義ホスト* (ここで
*
はパターンです– 0個以上の文字に一致するワイルドカード)は0個以上のホストに一致します。
上記の形式を引き続き考慮して、これはsshが構成ファイルを読み取る方法です。 sshコマンドを実行してhost1にリモートアクセスする場合 そのように:
$ ssh host1
上記のsshコマンドは、次のことを実行します。
- ホストエイリアスと一致するhost1 構成ファイルで、定義ヘッダー Host host1の下に設定されたオプションを適用します 。
- 次に、次のホストセクションであるホストhost2に移動します コマンドラインで指定された名前が一致しないことがわかったため、ここからオプションは使用されません。
- 最後のセクションであるホスト*に進みます 、すべてのホストに一致します。ここでは、このセクションのすべてのオプションをホスト接続に適用します。ただし、前のセクションですでに使用されているオプションの値を上書きすることはできません。
- 同じことが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設定オプションの詳細な説明。
- ホスト名 –ログインする実際のホスト名を定義します。または、数値のIPアドレスを使用することもできます(コマンドラインとホスト名の両方で許可されます)。 仕様)。
- ユーザー –ログインするユーザーを指定します。
- ポート –リモートホストに接続するポート番号を設定します。デフォルトは 22です。 。リモートホストのsshd構成ファイルで構成されているポート番号を使用します。
- プロトコル –このオプションは、sshがサポートするプロトコルバージョンを優先順に定義します。通常の値は「1」です および「2」 、複数のバージョンはカンマで区切る必要があります。
- IdentityFile –ユーザーのDSA、Ed25519、RSA、またはECDSA認証IDを読み取るファイルを指定します。
- ForwardX11 –X11接続がセキュリティで保護されたチャネルとDISPLAYセットを介して自動的にリダイレクトされるかどうかを定義します。 2つの可能な値があります「はい」 または「いいえ」 。
- 圧縮 –「はい」を使用したリモート接続中に圧縮を設定するために使用されます 価値。デフォルトは「いいえ」です 。
- ServerAliveInterval –タイムアウト間隔を秒単位で設定します。その後、サーバーから応答(またはデータ)が受信されない場合、sshは暗号化されたチャネルを介してメッセージを送信し、サーバーからの応答を要求します。デフォルト値は0 、メッセージがサーバーに送信されないことを意味します。または 300 BatchModeオプションが定義されている場合。
- ServerAliveCountMax –sshがサーバーからの応答を受信せずに送信できるサーバーアライブメッセージの数を設定します。
- 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クライアント構成ファイルを使用する方法について説明しました。この記事に関して私たちに返信するには、以下のフィードバックフォームを使用してください。