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

推薦する

CSS の Flex レイアウトを使用してシンプルな縦棒グラフを作成する方法

以下は、Flex レイアウトを使用した棒グラフです。 HTML: <div class=&qu...

Vueリクエストインターセプターの設定方法の詳しい説明

以下の手順に従ってください1. request.jsコンテンツ: http リクエスト インターセプ...

ストリーマーボタンの効果を実現するCSS3アニメーション

CSS3 を学習する過程で、CSS3 属性を使用すると多くのクールな効果を簡単に実現できることが分か...

個人ブログシステムを構築するためのDockerの超シンプルな実装

Dockerをインストールするyumパッケージを最新バージョンに更新します: sudo yum up...

Ubuntu 16.04 で MySQL マスター スレーブ同期を設定する方法

準備1. マスターとスレーブのデータベースのバージョンは一致している必要があります2. マスターデー...

MySQLインジェクションバイパスフィルタリング技術の概要

まず、GIF 操作を見てみましょう。ケース1: スペースがフィルタリングされるスペースの代わりに角括...

Mysqlトランザクション処理の詳細な説明

1. MySQLのトランザクションの概念MySQL トランザクションは主に、操作量が多く複雑度の高い...

HTML ページにミュージック ビデオを追加する例

1. ビデオタグFirefoxでは自動再生をサポートしますが、GoogleとIEではサポートしません...

MySQL 学習: データベース テーブルの 5 つの主要な制約を初心者向けに詳しく説明します

目次1. 制約の概念と分類2. 5つの制約の追加と削除2.1 制約を追加する6つの方法2.2 制約を...

MySQLレジストリをクリアする方法

具体的な方法: 1. [ win+r ] を押して実行ウィンドウを開き、「regedit」と入力して...

CentOS サーバーのセキュリティ構成戦略

最近、ブルートフォース攻撃によるサーバのクラッキングが頻発しています。侵入行為を大まかに分析し、よく...

MySqlは指定されたユーザーのデータベースビュークエリ権限を設定します

1. 新しいユーザーを作成します。 1. SQL ステートメントを実行して新しいものを作成します (...

ApacheのDjangoオンライン展開方法

環境: 1. Windows Server 2016 Datacenter 64 ビット 2. SQ...

Vue3 プロジェクトで WeChat 認証ログインをエレガントに実装する方法

目次序文準備する実装のアイデアコードについて要約する序文WeChat 認証ログインは、WeChat ...

オンライン MYSQL 同期エラーのトラブルシューティング方法の概要 (必読)

序文フェイルオーバーが発生した後、よくある問題は同期エラーです。データベースが小さい場合は、ダンプし...