2013-09-06 2 views
6

クライアントから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

+1

クライアントは、秘密鍵から公開鍵を計算しました。 –

+0

ありがとうございます!これはすべてを説明します。私はOpenSSHを使っているので、私は秘密鍵から公開鍵を得るために 'ssh-keygen -y'で公開鍵を得ることができます – macsyz

+0

"my()の代わりに実際の*質問*コードdoesntの仕事plzの助け "、私はちょうどそれのためのupvoteを投げるでしょう –

答えて

3

を@Pascal Cuoqさんのコメントが正しい答えですが、それは実際には、クライアントは公開鍵を必要としないので、答えの半分だけである - しかし、 サーバーの公開鍵のみです。あなたは既にknown_hostsファイルにあります。

- そうしないと、サーバーへの最初の接続時にサーバーが提示しているものを信頼するように求められます。これは、ほとんどの人が完全に見過ごすものです。最初に接続したときにDNS被害を受けた(または他の形のMan-in-the-Middle攻撃がある)場合、またはServer identity has changed通知に注意しない場合、MitM攻撃の脆弱性があります。

+0

私はクライアントがサーバではなく秘密鍵をなぜ維持しているかはまったくわかりません。質問から、私が読んだことは、鍵を使ってサーバに接続したいのであれば、鍵のペアを生成する必要があるということです。私は秘密鍵を保持し、サーバに公開鍵のコピーを提供します。あなたが示唆しているようにも、私はサーバーが秘密鍵を持っていることを示すサーバーの公開鍵が必要です。申し訳ありませんが、私は混乱しています。 – Motivated

+0

@Motivatedサーバには「ホスト鍵」と呼ばれる秘密鍵もあります。秘密鍵があなたをサーバに認証するのと同じように、サーバをユーザ認証するために使用されます。 – Kimvais

+0

ありがとうございます。私がSFTPに関してさらに質問があった場合、あなたに電子メールを送りましたか? – Motivated

関連する問題