SSHサーバーにログインするための秘密鍵privateKeyの作成と使い方を手のイラストで教えます

privateKey を使用して SSH サーバーにログインする理由

普段 Linux サーバーにログインするときは、ユーザー名とパスワードを使ってログインすることが多いのですが、コード接続やその他の操作に使用する場合は、より安全な方法でログインする必要があり、ログインには privateKey が必要です。 SSHサーバーに

SSH ログインの概要

  • RSA 非対称暗号化
  • SSH でログインすると、RSA キーを使用してログインできます。
  • SSH キーは、ツール ssh-keygen を使用して作成できます

作成方法は?

サーバーはキーペアを生成します (ubuntu)

Linux システム ディレクトリの下の .ssh ディレクトリを入力します。

cd ~/.ssh/

この時点で、エラーが表示されました -bash: cd: /root/.ssh/: No such file or directory

[root@localhost ~]# cd ~/.ssh/
-bash: cd: /root/.ssh/: 没有那个文件或目录

エラーを解決する

埋め込む

ssh localhost

エラーが解決され、完了です〜

ls コマンドを実行すると、この時点でディレクトリが表示されます

ssh-keygen を実行して鍵ペアを作成します

キー生成コマンドを実行し、Enter キーを押します~
実行プロセス中に、秘密キーのパスワードを入力するか、パスワードを必要としないかを選択できます~ Enter キーを押すだけです

ssh-keygen -t rsa

コマンドが生成されたら、チェックアウトします

id_rsa  id_rsa.pub  known_hosts

SSH サーバー構成 (ubuntu)

ディレクトリにauthorized_keysがないことがわかりました。作成します

touch authorized_keys

id_rsa.pubファイルの内容をauthorized_keysに出力

cat id_rsa.pub >> authorized_keys 

リモート アクセス テスト

Windows コンピューターを例に、privateKey を介して SSH サーバーにログインできるかどうかを見てみましょう。

id_rsa 秘密鍵を Windows コンピューターにコピーし、秘密鍵があるディレクトリを入力して、次のコマンドを実行します。

ssh -i .\id_rsa  [email protected]

再び例外が見つかりました。ホスト 'XXX' の信頼性を確立できません。

PS C:\Users\Administrator\Desktop\fsdownload> ssh -i .\id_rsa  [email protected]
The authenticity of host '192.168.33.129 (192.168.33.129)' can't be established.
ECDSA key fingerprint is SHA256:dw6kUF1VDfJ9WXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.33.129' (ECDSA) to the list of known hosts.

分析する

その理由は、Linux にリモートでログインするたびに、現在アクセスしているコンピューターの公開鍵が OpenSSH によって記録される ~/.ssh/know_hosts にあるかどうかを Linux がチェックするためです。次に同じコンピュータにアクセスするとき、OpenSSH は公開鍵をチェックします。公開鍵が異なる場合、OpenSSH は DNS ハイジャックなどの攻撃から保護するために警告を発します。ホストの public_key の SSH チェック レベルは、StrictHostKeyChecking 変数に従って構成されます。デフォルトでは、StrictHostKeyChecking=ask です。その 3 つの構成値を簡単に説明します。

  • 1. StrictHostKeyChecking=no 最も安全性の低いレベルです。もちろん、迷惑なプロンプトはそれほど多くありません。比較的安全なイントラネット テストに使用することをお勧めします。サーバーに接続するためのキーがローカルに存在しない場合は、ファイルに自動的に追加され (デフォルトは known_hosts)、警告が表示されます。
  • 2. StrictHostKeyChecking=ask デフォルト レベルは、今のプロンプトです。接続とキーが一致しない場合は、プロンプトを表示してログインを拒否します。
  • 3. StrictHostKeyChecking=yes が最も安全なレベルです。接続がキーと一致しない場合、詳細情報の入力を求めることなく接続が拒否されます。

解決

次のコマンドでログインします

ssh -i .\id_rsa -o StrictHostKeyChecking=no [email protected]

SSH ホスト認証を完全に削除する別の方法は、/etc/ssh/ssh_config 構成ファイルを変更し、ssh_config 構成ファイルに追加することです。

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

おしまい~

今日はここに書きます〜

  • 友よ ( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ また明日~~
  • みんなが毎日幸せに

記事を修正する必要がある場所を誰でも指摘してください〜
学習は無限であり、協力はウィンウィンです

ここに画像の説明を挿入

通りすがりの兄弟姉妹を歓迎して、より良い意見を出してください~~

おすすめ

転載: blog.csdn.net/tangdou369098655/article/details/128894931