適切な.ssh / config権限の設定

Setting Proper Ssh Config Permissions



SSHプロトコルは、ルーターやスイッチなど、サーバーやネットワークデバイスなどのリモートデバイスに接続するために通常使用される安全なプロトコルです。これはクライアントサーバーセットアップで機能し、デフォルトではポート22でリッスンします(ただし、これは必要に応じて変更できます)。 SSHは、クライアントとリモートホスト間の通信が暗号化され、盗聴から安全であることを保証するために、さまざまな暗号化およびハッシュ技術を採用しています。

SSHファイルはに保存されます .ssh フォルダ。これは、ホームディレクトリにある隠しフォルダです。 NS .ssh ディレクトリはデフォルトでは作成されません。リモートホストとの接続を開始するか、 ssh-keygen 必要に応じて秘密認証キーと公開認証キーを生成するコマンド パスワードなしのssh認証を設定します。







NS .ssh フォルダ。次のような重要なSSHファイルが含まれています。



  1. 公開鍵と秘密鍵( id_rsaおよび id_rsa.pub )。
  2. NS 既知のホスト ファイル–接続しているすべてのリモートシステムの公開鍵が含まれています。
  3. NS 設定 クライアント構成ファイル

の場合 設定 ファイルが存在しないため、図のように簡単に作成できます。



$ touch〜 / .ssh / config

.ssh / configクライアント構成ファイル

SSH接続を開始するたびに、IPアドレスやドメイン名、SSHがリッスンしているポートなどの詳細を指定する必要があります。例えば、





$ ssh [メール保護] -p 22

そのような詳細を常に覚えておかなければならないのは大変なことです。そして、これは 〜/ .ssh / config ファイルが入ります。 〜/ .ssh / config fileは、リモートホストのユーザーごとの構成の詳細を構成できるようにする構成ファイルです。これにより、接続に必要なホストごとの詳細を常に思い出す必要があるという苦痛を軽減できます。

サンプルの設定ファイルが次のように表示されます。



ホストステージングサーバー
ホスト名192.168.2.103
ユーザージェームズ
ポート22

リモートホストへの単純なSSHコマンドは次のようになります。

$ sshステージングサーバー

.ssh / configファイルのアクセス許可

デフォルトでは、 〜/ .ssh / config クライアント構成ファイルは、 644 ファイルのアクセス許可。を使用して確認できます ls -la 次のようにコマンドします。

$ ls -la〜 / .ssh / config

これは、ファイルの所有者とグループの両方が読み取りと書き込みのアクセス許可(rw)を持っているのに対し、他のユーザーは読み取りアクセス許可のみ(r)を持っていることを意味します。

-rw-rw-r--

ノート:

経験則として、他のユーザーに書き込み権限を割り当てないでください。これはファイルにセキュリティリスクをもたらし、自分自身またはグループに属していない他のユーザーがファイルの内容を変更する可能性があります。書き込み権限を割り当てると、「 所有者または権限が正しくありません ’エラーは以下のとおりです。

ここでは、構成ファイルに権限666が割り当てられています。これは、誰もがファイルの読み取りと書き込みの両方を実行できることを意味します。

同様に、ファイルに777のアクセス許可が割り当てられている場合も、同じケースが当てはまります。これは、誰でもファイルの読み取り、書き込み、実行ができることを意味します。簡単に言えば、誰もが潜在的に危険なファイルに対するすべての権利を持っています。

ベストプラクティスでは、デフォルトの権限を次の場所に残すことをお勧めします。 664 また 600、 所有者のみが読み取りおよび書き込み権限(rw)を持っている場合。このようにして、ファイルは許可されていないユーザーによって変更されることから安全に保たれます。

さらに、ファイルを所有していることを確認してください。ファイルが別のユーザーに変更された場合、SSHは構成ファイルで提供されたホスト名を解決できません。

以下の例では、 〜/ .ssh / config 所有権はに設定されています bob:bob。

この問題を解決するために、を使用して元のファイルの所有権に戻しました chown 指図。

$ sudo chown james:james〜 / .ssh / config

ファイルのアクセス許可を元に戻したので、SSHコマンドを呼び出してから、構成ファイルで指定されたホスト名を呼び出すことでアクセスできるようになりました。

$ sshステージングサーバー

そして、それはあなたがに許可を設定することについて知る必要があるすべてです 〜/ .ssh / config ファイル。残りのユーザーに読み取り権限を設定しないようにし、ファイルを所有していることを確認してください。