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 コードを画像に変換する方法

推薦する

Hタグの定義と注意事項について簡単に説明します

結果から判断すると、タイトルを定義するための固定パターンはなく、すべてむしろランダムな感じがします。...

Ubuntu仮想マシンでシリアル通信にcutecomを使用する方法

Ubuntu仮想マシンでのシリアル通信にcutecomを使用する1. cutecomをインストールす...

APPログインインターフェースシミュレーション要求を実装するためのPostmanデータ暗号化と復号化

目次主に使用されるPostmanの機能データの暗号化と復号化さまざまなパラメータ設定実際に送信された...

CentOS6で定期的にjarプログラムを実行するスクリプトをcrontabで実行する

1. 簡単なJavaプログラムを書く パブリッククラステストシェル{ パブリック静的voidメイン(...

MySQL でデータをクエリし、条件に基づいて別のテーブルに更新する方法の例

この記事では、MySQL が条件に基づいてデータをクエリし、別のテーブルに更新する方法を例を使用して...

MySQL データ操作 - DML ステートメントの使用

例示するDML(データ操作言語)とは、データベースの追加、削除、変更を行うための操作命令のことです。...

CSS ピックアップ矢印、カタログ、アイコン実装コード

1. CSS その他のアイコンアイコンを作成するには 3 つの方法があります。写真css (小さな矢...

Maven プロジェクトのリモート デプロイメント && Tomcat を使用してデータベース接続を構成する方法

1つ。 tomcat を使用したリモート展開1.1 発生した問題:プロジェクトでは、サードパーティの...

Enterキーを押すとフォームが自動的に送信されます。予期せぬ発見

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

Vueはログインジャンプを実装する

この記事では、ログインジャンプを実装するためのVueの具体的なコードを例として紹介します。具体的な内...

JavaScript でのカスタム スワイパー コンポーネントの詳細な説明

目次エフェクト表示コンポーネント設定ステップ1ステップ2ステップ3コンポーネントの使用ステップ1ステ...

MySQL 使用仕様の概要

1. InnoDBストレージエンジンを使用する必要がありますCPU と IO のパフォーマンスが向上...

VMware仮想マシンでのLinuxのコピー&ペーストの詳細な説明

1. VMware Workstation 上の Linux: 1. ソースの更新(オプション) v...

MySQLは複数テーブル関連統計(サブクエリ統計)の例を実装します

この記事では、例を使用して、MySQL で複数テーブルの関連統計を実装する方法について説明します。ご...