アンドロイド

ssh構成ファイルの使用

–°–Ω—Ã –Ü—Ä–∏—Ö–Æ–¥—È—Ç

–°–Ω—Ã –Ü—Ä–∏—Ö–Æ–¥—È—Ç

目次:

Anonim

1つのオプションは、リモートサーバー接続ごとにbashエイリアスを作成することです。 ただし、この問題に対する別のはるかに優れた、より簡単な解決策があります。 OpenSSHを使用すると、ユーザーごとの構成ファイルをセットアップして、接続するリモートマシンごとに異なるSSHオプションを保存できます。

このガイドでは、SSHクライアント構成ファイルの基本について説明し、最も一般的な構成オプションのいくつかについて説明します。

前提条件

OpenSSHクライアントがインストールされたLinuxまたはmacOSシステムを使用していると想定しています。

SSH構成ファイルの場所

OpenSSHクライアント側の構成ファイルは config という名前で、ユーザーのホームディレクトリの下の .ssh ディレクトリに保存され .ssh

~/.ssh ディレクトリは、ユーザーが初めて ssh コマンドを実行したときに自動的に作成され ssh 。 システムにディレクトリが存在しない場合は、次のコマンドを使用して作成します。

mkdir -p ~/.ssh && chmod 700 ~/.ssh

デフォルトでは、SSH構成ファイルは存在しない可能性があるため、touchコマンドを使用して作成する必要があります。

touch ~/.ssh/config

このファイルは、ユーザーのみが読み取りおよび書き込み可能で、他のユーザーがアクセスできないようにする必要があります。

chmod 600 ~/.ssh/config

SSH構成ファイルの構造とパターン

SSH構成ファイルは次の構造を取ります。

Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value

SSHクライアント構成ファイルの内容は、スタンザ(セクション)に編成されています。 各スタンザは Host ディレクティブで始まり、リモートSSHサーバーとの接続を確立するときに使用される特定のSSHオプションが含まれています。

インデントは必須ではありませんが、ファイルを読みやすくするためにお勧めします。

Host ディレクティブには、1つのパターンまたは空白で区切られたパターンのリストを含めることができます。 各パターンには、0個以上の非空白文字または次のパターン指定子のいずれかを含めることができます。

  • * -0個以上の文字に一致します。 たとえば、 Host * すべてのホストに一致し、 192.168.0.* 192.168.0.0/24 サブネット内のホストに一致します。 ? -正確に1文字に一致します。 パターン、 Host 10.10.0.? 10.10.0. すべてのホストに一致します 10.10.0. 範囲。 ! -パターンの開始時に使用すると、一致が無効になります。 たとえば、 Host 10.10.0.* !10.10.0.5 は、 10.10.0.0/24 を除く 10.10.0.5 サブネットのすべてのホストと一致します。

SSHクライアントは、構成ファイルのスタンザをスタンザごとに読み取ります。複数のパターンが一致する場合、最初に一致するスタンザのオプションが優先されます。 したがって、ファイルの先頭でよりホスト固有の宣言を行い、ファイルの末尾でより一般的なオーバーライドを行う必要があります。

端末で man ssh_config と入力するか、ssh_configのmanページにアクセスすると、使用可能なsshオプションの完全なリストを見つけることができます。

SSH構成ファイルは、 scp sftp 、および rsync などの他のプログラムによっても読み取られます。

SSH構成ファイルの例

SSH構成ファイルの基本について説明したので、次の例を見てみましょう。

通常、SSH経由でリモートサーバーに接続する場合、リモートユーザー名、ホスト名、およびポートを指定します。 たとえば、 john という名前のユーザーとしてコマンドラインからポート 2322 dev.example.com というホストにログインするには、次のように入力します。

ssh [email protected] -p 2322

単に ssh dev と入力して、上記のコマンドで提供されているのと同じオプションを使用してサーバーに接続するには、 "~/.ssh/config ファイルに次の行を追加します。

〜/.ssh / configに

Host dev HostName dev.example.com User john Port 2322

ssh dev と入力すると、sshクライアントは設定ファイルを読み取り、 dev ホストに指定されている接続の詳細を使用します。

ssh dev

共有SSH構成ファイルの例

この例では、ホストパターンとオプションの優先順位に関する詳細情報を提供します。

次のサンプルファイルを見てみましょう。

Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes

  • ssh targaryen と、sshクライアントはファイルを読み取り、最初に一致したオプション( Host targaryen からオプションを適用します。 次に、次のスタンザを1つずつ照合してパターンをチェックします。 次に一致するものは Host * !martell martell を除くすべてのホストを意味する)であり、このスタンザからの接続オプションを適用します。 最後の定義 Host * も一致しますが、 User オプションは Host targaryen スタンザですでに定義されているため、sshクライアントは Compression オプションのみを User ます。

    ssh targaryen と入力したときに使用されるオプションの完全なリストは次のとおりです。

    HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yes

    ssh tyrell 実行する場合、一致するホストパターンは次の Host tyrell Host *ell Host * !martell および Host * 。 この場合に使用されるオプションは次のとおりです。

    HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes

    HostName 192.168.10.50 User oberyn Compression yes

    他のすべての接続では、sshクライアントは Host * !martell および Host * セクションで指定されたオプションを使用します。

SSH構成ファイルオプションのオーバーライド

sshクライアントは、次の優先順位で構成を読み取ります。

  1. コマンドラインから指定されたオプション ~/.ssh/config 定義されたオプション /etc/ssh/ssh_config 定義されたオプション

Host dev HostName dev.example.com User john Port 2322

そして、他のすべてのオプションを使用したいが、 john 代わりにユーザー root として接続するには、コマンドラインでユーザーを指定するだけです。

ssh -o "User=root" dev

-F configfile )オプションを使用すると、代替のユーザーごとの構成ファイルを指定できます。

ssh構成ファイルで指定されたすべてのオプションを無視するように ssh クライアントに指示するには、次を使用します。

ssh -F /dev/null [email protected]

結論

ユーザーssh構成ファイルを構成する方法を示しました。 SSHキーベースの認証を設定し、パスワードを入力せずにLinuxサーバーに接続することもできます。

デフォルトでは、SSHはポート22でリッスンします。デフォルトのSSHポートを変更すると、自動化された攻撃のリスクが軽減され、サーバーのセキュリティがさらに強化されます。

sshターミナル