web-dev-qa-db-ja.com

SSH(プロトコル)とは何ですか?ssh(ユーティリティ)とは何ですか?

SSHとは何ですか-プロトコル?
sshとは何ですか?UNIXユーティリティとその仕組みは何ですか?

SSHプロトコルはSFTPとどのように関連していますか?

sshdとは何ですか?

コマンドsusshまたはsshdを使用しますか?

15
Srikanth

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サブシステムが要求されると、sshdsftp-serverをサブシステムセッションに接続します。次に、sftpプログラムはftpと同様に通信しますが、ftpのように個別の接続を使用する代わりに、ファイル転送がストリーム上で多重化されます。

suは、sshsshd、またはsftpとは何の関係もありません。ただし、多重化されたストリームを利用できるように調整するPAMモジュールがある場合を除きます。シェルまたはそれによって実行されるプログラム内。

26
geekosaur

SSH( "Secure Shell"の略)は、 RFC4251 で説明されているネットワークプロトコルです。 sshユーティリティは、SSHデーモンに接続し、ユーザーに「セキュアシェル」を提示するSSHクライアントです。 SFTPは、SSH接続を介して機能するFTPのようなプロトコルです。

suコマンドはsshまたはsshdを使用せず、異なる特権でプロセスを実行できるようにします。

9
gelraen

[〜#〜] ssh [〜#〜] は、安全でないネットワークを介した安全な通信のためのプロトコルです。これにより、すべての通信のエンドツーエンド暗号化が可能になり、(実行可能に)傍受および復号化できなくなります。

sshユーティリティはプロトコルの実装です。 [〜#〜] sftp [〜#〜]は、安全なパスワードとファイルのプロトコルを使用するsshのサブシステムです。転送。

sはsshプロトコルを使用しません。

6
user591

OpenSSHプロジェクト を見てください。それはあなたが探しているすべての情報を持っています。

簡単に言うと、SSHプロトコルは、2つのホスト間のセキュア(暗号化)接続を許可します。 sshユーティリティは、SSHプロトコルを使用してリモートシステムにログインするためのクライアントプログラムであり、[逆]トンネリング/ポート転送/ ...など、他にも多くの用途があります。

sshdそれはサーバーソフトウェアです。着信SSH要求に応答するデーモンを提供します。

suはsshとは何の関係もありません。アクティブユーザーを変更するために使用されます(最も頻繁に使用されるのはrootになることです)。

5
Mr Shunz