OpenSSH には、以下のような特長があります:
OpenSSH のソースコードはインターネットを介して、誰でも 自由に入手することができます。これはコードの再利用と監視を 促進しています。コードレビューは、バグを誰でも発見し修正することを 保証します。これは安全なコードが生まれるという結果につながります。
フリーのライセンス
OpenSSH には、いかなる制限つきのライセンスもありません。 どんな目的でも使うことができますし、商用の利用もしっかりと そこに含まれています。 OpenSSH の ライセンス は配布パッケージに含まれています。 ルータやネットワーク機器、オペレーティングシステム、その他すべてのネットワーク装置が ssh を組み込めば、私たちは世の中はもっとずっとよくなると思っています。
何らかの制限的事項 (つまり特許など。 ssl(8) を参照) が ついているコンポーネントはすべてソースコードから削除されています。 かわりにライセンスあるいは特許つきのコンポーネントは、外部ライブラリから 取り込まれます (例: OpenSSL など)。 対称的暗号化アルゴリズムである IDEA は使えなくなりました。 なぜならこれは多くの国で特許が取得されているからです。かわりに私たちは他の 使用可能な暗号化アルゴリズムを使うようおすすめします。 (フリーのものがいくつもあるのに、 特許つきの対称的暗号化アルゴリズムを使う理由はありません。)
強力な暗号化機能
OpenSSH は暗号化アルゴリズムとして、3DES、Blowfish、AES および Arcfour を使っています。 これらはどれも特許がありません。
3DES (トリプル DES) はよく知られている
由緒正しい暗号化アルゴリズムで、強力な暗号化機能を提供します。
Blowfish は Bruce Schneier によって開発された
高速なブロック暗号アルゴリズムで、高速な暗号化を必要とする人に使われています。
AES は米国連邦情報処理標準規格
(US Federal Information Processing Standard, FIPS) の高度暗号化標準規格 (Advanced Encryption Standard) で、
DES に代わるものとして開発された高速なブロック暗号アルゴリズムです。
Arcfour は高速なストリーム暗号です。これは
RSA セキュリティ社の所有している RC4(TM) と互換であると考えられています。
(訳注: RSA は RC4 の仕様を公開していないため、このような書き方になっています)
暗号化は認証に先だって行われるため、 そのままで流される情報はパスワードを含め一切ありません。 また、暗号化はなりすましのパケットから身を守るためにも使われます。
X11 転送
X11 転送 (forwarding) はリモート X window システムの通信を 暗号化するものです。これによってお使いの xterm を のぞき見したり、まがいもののコマンドを送り込んだりすることは 誰にもできなくなります。このプログラムはサーバマシン上で DISPLAY 環境変数を自動的に設定し、あらゆる X11 接続を 安全な経路上で転送します。本物の Xauthority 認証情報は送られず、 かわりに仮の認証情報が自動的に生成され、リモートマシン上に送られます。 ローカルのクライアントは X11 の接続要求を検査し、仮の認証情報を自動的に 本物の認証情報に置き換えます (つまり、リモートマシン上に決して本物の認証情報が 送られることがないようになっているのです)。
ポート転送
ポート転送は、暗号化された経路を通じて TCP/IP の接続をリモートマシン上へ 転送します。POP などの標準的なインターネット・アプリケーションを この機能によって安全に使うことができます。
強力な認証
強力な認証はつぎのいくつかのセキュリティ上の問題からあなたの身を守ります。 たとえば、IP 詐称、偽の経路情報 そして DNS 詐称 などです。 認証の方法には、RSA ベースのホスト間認証をふくめた .rhosts や、 純粋な RSA 認証、s/key を用いた one-time パスワード、そして Kerberos. を用いた認証があります。
エージェント転送
認証エージェントとは、ユーザのノートパソコンやローカルな ワークステーション上で走っているもので、そのユーザの RSA または DSA 認証鍵を 保持させるのに使います。OpenSSH は、すべての接続をとおして 認証エージェントへの接続を自動的に転送するので、ネットワーク上の すべてのマシンに (そのユーザ自身のローカルマシンを除いては) RSA または DSA の identity (秘密鍵) を置いておく必要がありません。 認証のプロトコルは鍵をばらしてしまうようなことは決してせず、 そのユーザエージェントがある鍵を保持しているかどうか確認するためだけに使われます。 いずれはエージェントがスマートカードの中に入って、 すべての認証処理を行うこともできるようになるでしょう。
相互運用
OpenSSH 2.0 より前のバージョンでは、SSH リモートプロトコル (SSH Remote Protocol) バージョン 1.3 および 1.5 をサポートしていました。 これはほとんどの UNIX や Windows、およびその他の商用 ssh 実装 と通信が可能です。
OpenSSH 2.0 では、バージョン 1.3 と 1.5 のプロトコルの サポートに加えて、さらに SSH プロトコル バージョン 2.0 もサポート するようになりました。このプロトコルは RSA アルゴリズムを使わないように できています -- なぜならプロトコル 2.0 が開発された当時、RSA の特許は まだ有効だったからです -- かわりに、自由に利用可能な DH および DSA アルゴリズムを使っています。
このように、OpenSSH は両方の世界のいいとこどりをしています。 これで両方のタイプの ssh クライアントや サーバともやりとりができるようになりました!
SFTP クライアントおよびサーバのサポート (SSH1 および SSH2 プロトコル)
OpenSSH 2.5.0 では、SFTP の完全なサポートが含まれました。 これはクライアントとして sftp(1) コマンドを使います。 sftp-server(8) サブシステムが SSH1 および SSH2 の両方のプロトコルで自動的に作動するように なりました。
Kerberos と AFS のチケットパス
また OpenSSH は、リモートマシン上で Kerberos と AFS のためのチケットをやりとりします。 ユーザはこれによってそのすべての Kerberos や AFS サービスを、 パスワードの再入力なしに行うことができます。
データ圧縮
暗号化の前に行われるデータ圧縮は、遅いネットワーク接続での 性能を向上させます。