SSHとは何ですか-プロトコル?ssh
とは何ですか?UNIXユーティリティとその仕組みは何ですか?
SSHプロトコルはSFTPとどのように関連していますか?
sshd
とは何ですか?
コマンドsu
はssh
またはsshd
を使用しますか?
SSHプロトコルは、ssh
およびsshd
プログラムが受け入れるものによって定義されます。 (標準が定義されていますが、これは事後のものであり、実装の1つが新しい機能を追加する場合はほとんど無視されます。)それらの実装は複数あるため(OpenSSH、F-Secure、PuTTYなど)。 )時々、それらの1つが他と同じプロトコルをサポートしていないことに気付くでしょう。基本的に、認証ネゴシエーションと多重化データストリームの作成を定義します。このストリームは、1つ以上の(OpenSSHおよびControlMaster
を使用した)ターミナルセッションと0つ以上のトンネル(ローカルまたはリモートから反対側へのソケット接続の転送。X11転送はリモート転送の特殊なケースです)を伝送できます。また、ストリーム上で使用できる「サブシステム」も定義します。ターミナルセッションは基本的なサブシステムですが、他のセッションも定義できます。 sftp
はこれらの1つです。
ssh
ユーティリティは、SSHプロトコルを使用して、別のマシンのsshd
と通信します。どのように機能するかはバージョンによって異なりますが(上記を参照)、その要点は、使用するSSHプロトコルのバージョンを見つけようとし、サポートされている認証方法をsshd
がネゴシエートすることです。これらの方法のいずれかを使用して認証を試み(必要に応じてリモートユーザーパスワード/秘密鍵paasword/S-Keyフレーズを要求)、認証が成功すると、sshd
を使用して多重化ストリームを設定します。
sshd
は、前述のように、SSHプロトコルのサーバー側を実装します。
sftp
は、ほとんどのsshd
実装で定義されている(現在、唯一の標準)サブシステムです。 SFTPサブシステムが要求されると、sshd
はsftp-server
をサブシステムセッションに接続します。次に、sftp
プログラムはftp
と同様に通信しますが、ftp
のように個別の接続を使用する代わりに、ファイル転送がストリーム上で多重化されます。
su
は、ssh
、sshd
、またはsftp
とは何の関係もありません。ただし、多重化されたストリームを利用できるように調整するPAMモジュールがある場合を除きます。シェルまたはそれによって実行されるプログラム内。
SSH( "Secure Shell"の略)は、 RFC4251 で説明されているネットワークプロトコルです。 ssh
ユーティリティは、SSHデーモンに接続し、ユーザーに「セキュアシェル」を提示するSSHクライアントです。 SFTPは、SSH接続を介して機能するFTPのようなプロトコルです。
su
コマンドはssh
またはsshd
を使用せず、異なる特権でプロセスを実行できるようにします。
[〜#〜] ssh [〜#〜] は、安全でないネットワークを介した安全な通信のためのプロトコルです。これにより、すべての通信のエンドツーエンド暗号化が可能になり、(実行可能に)傍受および復号化できなくなります。
sshユーティリティはプロトコルの実装です。 [〜#〜] sftp [〜#〜]は、安全なパスワードとファイルのプロトコルを使用するsshのサブシステムです。転送。
sはsshプロトコルを使用しません。
OpenSSHプロジェクト を見てください。それはあなたが探しているすべての情報を持っています。
簡単に言うと、SSHプロトコルは、2つのホスト間のセキュア(暗号化)接続を許可します。 ssh
ユーティリティは、SSHプロトコルを使用してリモートシステムにログインするためのクライアントプログラムであり、[逆]トンネリング/ポート転送/ ...など、他にも多くの用途があります。
sshd
それはサーバーソフトウェアです。着信SSH要求に応答するデーモンを提供します。
su
はsshとは何の関係もありません。アクティブユーザーを変更するために使用されます(最も頻繁に使用されるのはroot
になることです)。