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

推薦する

MySQLとOracleの違いを簡単に説明してください

1. Oracle は大規模データベースですが、MySQL は小規模から中規模のデータベースです。O...

js+ca​​nvas でコードレイン効果を実現

この記事では、js+ca​​nvasコードの雨効果の具体的なコードを参考までに共有します。具体的な内...

ReactでCSSスタイルを動的に変更する2つの方法の詳細な説明

最初の方法: デモとしてボタンをクリックしてテキストを表示または非表示にするクラスを動的に追加します...

データベース管理に役立つ 5 つの MySQL GUI ツール

MySQL には多くのデータベース管理ツールがあります。作業効率の向上に役立つ優れた GUI ツール...

JSはオンラインでのアナウンスのスクロール効果を実現します

この記事では、オンラインアナウンスのスクロール効果を実現するためのJSの具体的なコードを参考までに共...

Linux 上で Python3.6 をコンパイルしてインストールするための詳細なチュートリアル

1. まず、公式ウェブサイト https://www.python.org/downloads/so...

CSSはインラインブロックのずれの問題を解決します

もうナンセンスじゃない、郵便番号HTML部分 <div class="positio...

Zookeeper&Kafka クラスターを構築するための Docker の実装

最近Kafka勉強しています。クラスタの状態をテストする準備をしていたときに、仮想マシンを 3 つ開...

SpringbootはDockerデプロイメントを統合し、Dockerイメージを構築する2つの方法を実装します。

Docker は、あらゆるアプリケーション用の軽量でポータブルな自己完結型コンテナーを簡単に作成で...

Jsモジュールパッケージのエクスポートの使用法と違いにはインポートが必要

目次1. Commonjsのエクスポートとrequireの使用1.1 CommonJS エクスポート...

IE6 および IE7 で DIV コンテナの固定高さを使用するためのヒント

IE6 と IE7 では CSS の解釈に多くの違いがあります。今日はそのうちの 1 つである高さに...

Jenkins は Docker イメージを構築し、Harbor ウェアハウスにプッシュします

目次DockerファイルドキュメントJenkins の設定Spring Boot プロジェクトでは、...

Linux環境でユーザーにsudo権限を追加する方法

sudo 設定ファイルsudo のデフォルトの設定ファイルは /etc/sudoers です。一般的...

CocosCreator スケルトンアニメーション ドラゴンボーン

CocosCreator バージョン 2.3.4ドラゴンボーンアニメーションキールアニメーションを ...