クライアントからSFTPサーバに接続するとき、公開鍵ではなく秘密鍵をクライアントソフトウェアに提供するだけで済みます。私はこれがどのように動作するのかわかりません。なぜなら、[1]と[2]から、両方ともクライアントソフトウェアが公開鍵を知っている必要があるからです。なぜSFTPクライアントは公開鍵を必要としない秘密鍵を知る必要があるのですか?
SFTP作業が
セットアップ
クライアントであるかの私の理解:公開鍵/秘密鍵のペアを生成します。
は
クライアント:サーバーへ
サーバーを公開鍵を送信します。その認証キーリスト
に、この公開鍵を追加接続中
クライアント:公開サーバに伝えますキー
サーバー:chec公開鍵が許可されている場合、いない場合は、拒否し、それ以外の場合は、クライアントにランダムなセッションIDを送信するk個
クライアント:クライアントの使用秘密鍵はランダムなセッションIDをエンコードし、サーバに送信する
サーバー:それを公開鍵で解読し、同一性を確認する。
この場合、クライアントには公開鍵が必要です。しかし、私はこれを提供しませんでしたが、SFTPクライアントは引き続きサーバーを接続することができます。では、このSFTPプロトコルが実際にどのように機能するのでしょうか?
[1] http://www.openssh.org/txt/rfc4252.txt
を[2] https://www.eldos.com/security/articles/1962.php
クライアントは、秘密鍵から公開鍵を計算しました。 –
ありがとうございます!これはすべてを説明します。私はOpenSSHを使っているので、私は秘密鍵から公開鍵を得るために 'ssh-keygen -y'で公開鍵を得ることができます – macsyz
"my()の代わりに実際の*質問*コードdoesntの仕事plzの助け "、私はちょうどそれのためのupvoteを投げるでしょう –