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バイナリログを介してデータベースデータを復元する方法の詳細な説明

推薦する

MySQL解凍版のインストール手順の詳しい説明

1. 公式サイトにアクセスします: D:\mysql-5.7.21-winx64\bin をダウンロ...

一時ファイルを作成できないために MySQL が起動できない問題を解決する方法

問題の説明最近、仕事中に問題が発生しました。MySQL が起動に失敗しました。エラー ログは次のとお...

コンピュータが予期せずシャットダウンした後、VMware で Linux がインターネットに接続できない問題の解決策

問題の説明: Linux システムのネットワーク カード ファイル /etc/sysconfig/n...

JavaScript での実行コンテキストと実行スタックの例の説明

JavaScript - 原則シリーズ日常の開発では、既存のプロジェクトを引き継ぐときは常に、まず他...

JavaScript は詳細なコードで星座クエリ機能を実装します

目次1. タイトル2. コード3. 結果IV. 結論1. タイトルテキスト ボックスに誕生日の値を入...

Typescript+React でモバイルと PC でシンプルなドラッグ アンド ドロップ効果を実現

この記事では、モバイルとPCで簡単なドラッグアンドドロップ効果を実現するためのTypescript ...

Vue-CLI マルチページディレクトリパッケージ化手順の記録

ページディレクトリ構造 デフォルトの HTML テンプレート ファイル public/index.h...

Echarts は 1 つのグラフ内で異なる X 軸を切り替える機能を実装します (サンプル コード)

レンダリング下の画像のような効果を実現したい場合は、読み続けてアニメーション画像に直接進んでください...

MySQL 5.7 のパフォーマンスと sys スキーマの監視パラメータの説明 (推奨)

1. パフォーマンス スキーマ: はじめにMySQL 5.7 では、多数の新しい監視項目の導入、ス...

Reactコンポーネントのライフサイクル機能についての簡単な説明

React コンポーネントのライフサイクル機能とは何ですか?ライフサイクル関数は、ES6 構文クラス...

ボタンと入力タイプの違いと注意点

<button> タグ<br />定義と使用法<button> ...

Dockerを使用してLaravelおよびVueプロジェクトの開発環境を構築する詳細な説明

この記事では、Docker で構築された Laravel および Vue プロジェクトの開発環境を紹...

Windows システムに VirtualBox と Ubuntu 16.04 をインストールするための詳細なチュートリアル

1. ソフトウェアの紹介バーチャルボックスVirtualBox は、無料のオープンソース仮想マシン ...

Linux で MySQL のスケジュールバックアップを実装する方法

実際のプロジェクトでは、緊急事態を防ぐためにデータベースを頻繁にバックアップする必要があります。しば...

Vue 天気予報入門

この記事では、参考までに天気予報を実装するためのVueの具体的なコードを紹介します。具体的な内容は次...