sshとは何ですか?使い方は?どのような誤解があるのでしょうか?

sshとは何ですか?使い方は?どのような誤解があるのでしょうか?

序文

sshパスワード不要のログインに使われるものだと思っていた人も、私も含めて何人かいたと思います。実は、ssh には sftp/scp/winscp など、ssh と切り離せないものがたくさんあります。それでは本文に入りましょう。

SSHとは何か

ssh は遠程加密傳輸協議であり、いわゆるパスワードフリーログイン機能ではありません。それはほんの一部です。https httpsような暗号化プロトコルとして理解していただければ、セキュリティの向上に役立ちます。こちらのほうがわかりやすいでしょうか。
さらに、SSHはWindows、Linux、Macなどの多くのシステムに組み込まれています。

ssh は何に使用されますか?

SSH はリモート アプリケーションを強化します。これは、FTP、POP、Telnet などの従来のリモート プロトコルに代わるものです。これらのプロトコルは本質的に安全ではありません。プレーン テキストでデータを送信し、仲介者に簡単に盗まれます。SSH プロトコルはこれらの問題を解決できます。リモート送信中にデータに暗号化保護のレイヤーを追加し、攻撃者がデータを解読することを困難にします。これが、後にsftp / scp / winscpなどのプロトコルが導入された理由です。これらはすべてsshに基づいて作成されています。たとえば、 sftpは従来のリモート ファイル プロトコルftpの安全なバージョンです。

sshの使い方

個人的には、これを遠程工具と呼ぶことを好みます。これは、ssh コマンドを介してリモート サーバーにログインし、ローカル ホストとサーバー ホスト間でデータを転送および暗号化するのに役立ちます。

1. パスワードログイン

コマンドは以下のとおりです

// フォーマット ssh user@host
// 例 ssh [email protected]

上記のコマンドを入力すると、ssh はリモート サーバーのパスワードを入力するように要求します。正しいパスワードを入力すると、リモート サーバーにログインして対話を開始できます。また、サーバー パスワードはログインするたびに入力する必要があるため、基本的には 2 番目の方法である公開キー ログインが使用されます。

ヒント: パスワード ログインは、実際には以前の「中間者」攻撃の問題を解決します。以前の ssh ログインでは、パスワードを直接入力してサーバーに入ることができましたが、仲介者はサーバーのふりをしてクライアントと対話してパスワードを取得し、このパスワードを使用して実際のサーバーと対話することができました。これはいわゆる「中間者攻撃」です。その後、この問題を解決するために口令登錄が登場しました。リモート ホストに初めてアクセスするときに、積極的に指紋を送信します。この指紋サーバーからのものです。この時点で、サーバーの指紋この指紋と一致しているかどうかを確認できます。一致している場合は、はいと入力するだけです。つまり、パスワード ログインは、実際のサーバーであるかどうかを識別できるようにするオプションを提供します。

2. 公開鍵ログイン

公開鍵ログインの機能は、いわゆる免密登錄です。使い方も非常に簡単です。サーバーの~/.ssh/authorized_keysファイルに公開鍵を入れるだけです。次回ログイン時には、パスワード認証なしで直接サーバーに入ることができます。

1. 公開鍵を持っている場合は、秘密鍵も必要です。これらはペアになっており、秘密鍵とも呼ばれます。デフォルトでは、 .ssh/ディレクトリに配置されます。秘密鍵を生成するコマンドは次のとおりです。

ssh-keygen -t rsa -C "あなたのメールアドレス" 

生成プロセスでは、パスワードの入力を求められます。このパスワードは、キーが他人に盗まれるのを防ぐための追加の保護層となります。このパスワードが不要な場合は、Enter キーを押し続けてください。

パスフレーズを入力してください (パスフレーズがない場合は空白):

その後、~/.sshに2つのファイルが自動的に生成されます: id_rsa秘密鍵 / id_rsa.pub公開鍵

2. 秘密鍵id_rsa管理用のssh-agentに送信する

sshエージェント ~/.ssh/id_rsa

ssh-agent 機能: キーにパスワードが設定されている場合、ログインするたびにパスワードを入力する必要があり、非常に面倒です。この問題を解決するためにssh-agentが使用されます。このコマンドでエラーが表示される場合は、起動していない可能性があります。git/linux で次のコマンドを入力すると、ssh-agent を起動できます。

`ssh-agent` を評価する

3. id_rsa.pubの内容をサーバーにアップロードします~/.ssh/authorized_keys

アップロード方法1: ssh-copy-idツールを使用する

ssh-copy-id -i id_rsa ユーザー@ホスト

アップロード方法2: 手動コマンドアップロード

$ cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

上記のコマンドで、 user@hostを自分のものに置き換えるだけです。これで、パスワードなしでサーバーにログインできるようになります。

ssh 再修正

ssh はパスワード不要のログインを実装するために特別に使用されるわけではありません。それは氷山の一角にすぎません。ssh は主にリモート操作に使用されます。 ssh は、提供されるコマンドに従ってリモート サーバーと対話します。この対話中に、送信を暗号化するのに役立ちます。これは、做遠程加密傳輸協議。https https似ていると考えることができますが、 https

さて、今のところはこれですべてです。ご質問がある場合は、以下にメッセージを残してください。

要約する

これで、SSH とは何かについてのこの記事は終わりです。使い方は?どのような誤解があるのでしょうか?この記事はこれで終わりです。関連する ssh の誤解については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • ブルートフォース攻撃を防ぐためのシェルスクリプト設定
  • SSH ポート転送とは何ですか?何の役に立つの?
  • Linux リモート管理と sshd サービス検証の知識ポイントの詳細な説明
  • Centos8環境でSSHポート番号を変更する方法
  • SSH リモート管理サービス

<<:  .htaccess を使用して特定の IP からの Web サイトへのアクセスを禁止する方法

>>:  html2canvas を使用して HTML コードを画像に変換する方法

推薦する

CentOS7 ファイアウォールとオープンポートの簡単な使い方の簡単な紹介

概要(公式にはより詳しい説明があります) Firewalld は、ネットワーク接続またはインターフェ...

MySQLカーソルの詳細な紹介

目次1. カーソルとは何ですか? 2. カーソルの使い方1. カーソルを宣言する2.カーソルを開く3...

Vueトップタグ閲覧履歴の実装

目次ナンセンス実装された機能文章要点ナンセンスデモプレビュー実装された機能デフォルトでホームページが...

Tomcat ディレクトリ構造の詳細な紹介

tomcat の解凍されたディレクトリを開くと、次のディレクトリ構造が表示されます。 1.Tomca...

Vueフィルターとカスタム命令の使用

目次フィルター01.とは02. やり方(1)フィルターを定義する(2)使用方法(3)フィルタパラメー...

JavaScript プロトタイプとプロトタイプチェーンの詳細

目次1. プロトタイプ(明示的なプロトタイプ) 2. __proto__ (暗黙のプロトタイプ) 3...

Workermanはmysql接続プールのサンプルコードを書きます

まず、接続プールを使用する理由と、接続プールによってどのような問題が解決できるかを理解する必要があり...

Dockerとiptablesとブリッジモードのネットワーク分離と通信操作の実装

Docker は、ブリッジ、ホスト、オーバーレイなどの複数のネットワークを提供します。同じ Dock...

JavaScript 開発における標準コミットメッセージの重要性の詳細な説明

目次標準コミットメッセージの重要性コミットするコミットリント依存関係をインストールする.commit...

Vue-Element-Adminはログインジャンプを実現するために独自のインターフェースを統合しています

1. まずリクエスト設定ファイルを見て、axios.createメソッドを見てください。baseUR...

Hadoop におけるネームノードとセカンダリネームノードの動作メカニズムの説明

1) プロセス 2) FSImageと編集NodeNode は HDFS の頭脳です。ファイルシステ...

VM VirtualBox 仮想マシンのマウント共有フォルダ

一つの環境CentOS 7にVMware Toolsをインストールしてホストの共有フォルダへのアクセ...

Linuxのbasenameコマンドの使い方

01. コマンドの概要basename - ファイル名からディレクトリとサフィックスを削除しますba...

MySQL 8.0.13 で日付を 0000-00-00 00:00:00 に設定すると発生する問題を解決する

データベース操作を学び始めたばかりです。今日、データを保存していたところ、エラーが発生していることに...

Nginx キャッシュ ファイルと動的ファイルの自動バランス設定スクリプト

nginx Nginx (エンジン x) は、高性能な HTTP およびリバース プロキシ サーバー...