Linux での SSH 非秘密通信の実装

Linux での SSH 非秘密通信の実装

SSHとは何か

管理者はリモートでログインして、インターネット経由で接続されたさまざまな場所にある複数のホストを管理できます。

管理者はリモート ホストに対して次の操作を実行できます。

  • リモートログイン
  • リモートコマンド実行
  • リモートファイル転送

残念ながら、これらの操作は安全ではありません。

プレーンテキストのパスワードを使用し、クリアテキストで送信する

  • 情報が傍受され、パスワードが取得される可能性がある
  • 権限のない人物が傍受したパスワードを使用してシステムにログインし、システムに損害を与える

日常の運用実践では、ssh で他のホストにログインする場合、scp を使用して何かをコピーする場合であっても、毎回ログイン パスワードを入力する必要がある場合があります。

ホストをより便利かつ迅速に切り替えるには、SSH の非暗号化通信の方が適しています。

ssh-keygenを使用してキーを生成します。デフォルトでは/root/.ssh/id_rsaにローカルに保存されます。

次に、ssh-copy-idを使用してターゲットホストに配布し、user@ホスト名またはIPアドレスとしてログインします。

知らせ:

1. ホスト名を使用し、ホスト名と対応する IP アドレスを /etc/hosts ファイルに記述するのが最適です。

2. パスワードフリー通信では両者間の相互認証が必要なので、ターゲットホストでも同じ操作を実行する必要があります。

[root@www ~]# ssh-keygen -t rsa -P '' 
公開/秘密 RSA キー ペアを生成しています。
キーを保存するファイル (/root/.ssh/id_rsa) を入力します。 
/root/.ssh/id_rsa はすでに存在します。
上書きしますか? (y/n)?
[root@www ~]#ssh-copy-id -i .ssh/id_rsa.pub [email protected]
/usr/bin/ssh-copy-id: INFO: インストールされるキーのソース: ".ssh/id_rsa.pub"
ホスト「172.16.75.1 (172.16.75.1)」の信頼性を確立できません。
ECDSA キーのフィンガープリントは SHA256:YXhbTS9MfK2IQC4gtOW4RL8voHvFqC1cAAMJXuF3Wec です。
ECDSA キーのフィンガープリントは MD5:2c:c0:94:e8:3a:e4:74:88:c0:d8:e0:01:20:81:1d:8e です。
本当に接続を続行しますか (はい/いいえ)? はい
/usr/bin/ssh-copy-id: INFO: すでにインストールされているキーを除外するために、新しいキーでログインしようとしています
/usr/bin/ssh-copy-id: INFO: インストールするキーが 1 つ残っています -- ここでプロンプトが表示された場合は、新しいキーをインストールしてください
[email protected]のパスワード: 
追加されたキーの数: 1
ここで、「ssh '[email protected]'」を使用してマシンにログインしてみます。
必要なキーだけが追加されたことを確認します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • bash スクリプトで ssh/scp コマンドにパスワードを渡す方法の詳細な説明
  • Linux で SSH 経由でリモート ファイルシステムをマウントする方法の詳細な説明
  • CentOS のデフォルトの SSH ポート番号を変更する方法の例
  • Ubuntu環境でのSSHの詳細なインストールと使用
  • Jenkins の Publish Over SSH プラグインを使用してプロジェクトをリモート マシンにデプロイする手順
  • CentOS 6.5 の設定 ssh キーフリーログインで pssh コマンドを実行する方法の説明
  • Ubuntuの基本設定: openssh-serverのインストールと使用
  • CentOS VPS に SSH 経由で MySQL をインストールする方法
  • Linux オペレーティング システムで ssh/sftp を構成して権限を設定する方法
  • さまざまなターミナルで Mac が SSH 経由でリモート サーバーに接続する方法の説明

<<:  three.js で 3D ダイナミック テキスト効果を実現する方法

>>:  MySQLバイナリログを介してデータベースデータを復元する方法の詳細な説明

推薦する

カルーセル効果を実現するためのネイティブJavaScript+CSS

この記事では、参考までに、カルーセル効果の具体的なコードをJavaScript+CSSを使用して実装...

WangEditor リッチ テキスト コンポーネントを Angular でカプセル化する方法

リッチ テキスト コンポーネントは、Web プログラムで、特にブログやフォーラムなどの Web サイ...

Dockerはコード検出プラットフォームSonarQubeを構築し、Mavenプロジェクトのプロセスを検出します

1 はじめに優れたコーディング習慣は優れたプログラマーが備えるべき資質ですが、コードの品質を保証する...

CSS3 と JavaScript を使用して Web カラー ピッカーのサンプル コードを開発する

この例の Web カラー ピッカー機能は、ページ効果を実現するために CSS3 を使用します。つまり...

角度付き双方向バインディングの詳細な説明

目次双方向バインディングの原理ngモデルレンダリングカスタム双方向バインディングプロパティコンポーネ...

Vue3 を使用して虫眼鏡効果を実現する方法の例

目次序文1. カプセル化の重要性2. どのようにカプセル化しますか? 1. 準備2. 梱包を開始する...

MySQLでユーザーを作成し、権限を管理する方法

1. ユーザーとパスワードの作成方法1. MySQLデータベースに入る mysql> mysq...

nginx+FastDFS を使ってファイル管理システムを段階的に構築する

目次1. FastDFS の概要1. はじめに2. FastDFSストレージ戦略3. FastDFS...

ウェブサイトデザインの経験 ウェブサイト構築におけるよくある間違いのまとめ

注意: 計画、設計、開発のいずれの場合でも、これらの間違いは避けなければなりません。 1. ナビゲー...

UDP DUP タイムアウト UPD ポート状態検出コード例

以前、単純な UDP サーバーとクライアントの例を書きましたが、その中で、自分自身をクライアントと見...

ネイティブ JS 音楽プレーヤー

この記事の例では、音楽プレーヤーを実装するためのJSの具体的なコードを参考までに共有しています。具体...

フォーム要素の垂直方向の中央揃えに最適なソリューション

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

Linux crontab コマンドの使用

1. コマンドの紹介contab (cron テーブル) コマンドは、Windows のスケジュール...

ショッピングカートのスライド削除効果を実装するReactネイティブサンプルコード

基本的にすべてのeコマースプロジェクトにはショッピングカートの機能があります。これはreact-na...

体験をデザインする: ボタンには何があるか

<br />最近、UCDChina は「インターフェース上のテキストに注意を払う」という...