SSHクライアントは、次の場合に必要なユーティリティです。2台のマシン間でSSH接続を使用します。リモートコンピュータのオペレーティングシステムに入り、その中でコマンドを実行するように設計されています。クライアントはユーザーのローカルマシンにインストールされます。サーバー上で認証される必要があり、その後でのみサービスが開始されます。クライアントは、端末で動作するように実装することも、グラフィカル構成インターフェイスを持つように実装することもできます。
SSHとは何ですか?
SSH(Secure Shell)は、文字通り次のように変換されます「セーフシェル」。使用中のSSHは、ネットワーク上のリモートホストのオペレーティングシステムを安全に管理するネットワークプロトコルです。ホストを通過するトラフィックを暗号化することにより、あるホストから別のホストへの安全な接続、認証、およびデータ転送を提供します。
それはあなたがのための暗号化されたトンネルを作成することを可能にしますインターネットなどのセキュリティで保護されていないネットワークを介して、他のネットワークプロトコルを安全に転送します。多くの場合、あるコンピューターのポートを別のコンピューターのポートにリダイレクトするために使用されます。
SSHは、TatuIlenenによって開始されました。より機密性の高いプロトコルとして導入された1995年のフィンランド。このバージョンはSSH-1と名付けられました。現時点では、実際にはどこにも使用されていません。
1996年に、改善されたSSH-2バージョン。 SSH-1とは互換性がなく、より安全で、暗号化アルゴリズムの拡張リストがあります。現在、SSHはSSH-2のバージョンとして理解されています。 2006年以降、このプロトコルはIETFによってインターネット標準として認識されています。
SSHの主な実装は2つあります。それらの1つは独自仕様であり、SSH CommunicationsSecurityによって開発されています。 2つ目はOpenSSHで、1つ目とは別の無料のオープンソースとしてTheo deRaadtの指導の下で作成されました。これは最も一般的であり、ほとんどのUnixライクなシステムの配信に含まれています。
SSHクライアントとSSHサーバーとは
SSH接続は、クライアントとサーバーの2つの主要コンポーネントを使用して実装されます。
簡単に言えば、クライアントを介したユーザーは、ローカルコンピュータにインストールされているものは、リモートマシン(サーバー)にアクセスできます。クライアントは、グラフィカルシェルを使用して(デスクトップアプリケーションとして)実装でき、ターミナル(コンソール)で作業するために実装できることに注意してください。
SSHサーバーはクライアントのネットワーク接続をリッスンし、接続の要求を受信すると、承認に必要なアクションを実行します。成功した場合、リモートクライアント用にインストールされたサービスを開始します。
安全なアクセスは、最初の接続で非対称公開鍵暗号化を使用する認証手順。続いて、対称暗号化が適用されます。
SSH標準には、次の3つのプロトコルが含まれています。
- トランスポート層プロトコル-サーバー認証、プライバシー、および整合性を保証します。データ圧縮を提供します。 TCP / IP上で動作します。
- 認証プロトコル-サーバーのクライアント認証を実行します。トランスポートプロトコル層の上で機能します。
- 接続プロトコル-さまざまなサービスに使用されるいくつかの論理チャネルの多重化チャネルの形式で暗号化されたチャネルを表します。認証チャネルの上で機能します。
セキュリティの強化は、sshクライアントがアクセスするサーバーへのクライアント認証とクライアントによるサーバー認証によって保証されます。両方の当事者が認証されます。
クライアントは、安全なトランスポート接続が最初に確立されたときに要求を送信します。 2番目の要求は、SSHクライアント認証が完了した後に送信されます。
OpenSSHの実装
OpenSSHは、OpenBSDコマンドのオープンソース実装です。無料配布のため、最も広く使用されているバージョンです。
OpenSSHパッケージには、次のようなツールのセットが含まれています。
- SSHDはサーバー側です。
- SSHはクライアント側です。
- SCPは、ファイルを安全にコピーするためのユーティリティです。
- SSH-keygen-コンピューターとユーザーの公開鍵(RSA、DSAなど)を生成します。
- SSH-keyscan-ネットワーク上の公開鍵を収集します。
- SSH-agent-公開鍵を使用した後続の認証のために秘密RSA鍵を格納します。
- SSH-add-SSH-agentに新しい秘密鍵を追加します。
- SFTPサーバー-SFTPサーバー。
- SFTPは、FTP経由でファイルを安全にコピーするためのユーティリティです。
OpenSSHは、ほとんどのUnixライクなシステムにすぐに含まれています。最も一般的なのは、Linux、Open(Free、Net)BSD、Solaris、HP-UX、Irix、MacOSXなどです。
OpenSSH for Windowsの実装は活発に開発されており、次のURLからダウンロードできます。 地点。これにより、Windowsファミリシステム上にSSHサーバーを作成でき、接続するSSHクライアントがあります。 OpenSSH forWindowsはCygWinに含まれています。
ユーザーの間で最も人気があるのはLinuxカーネルベースのディストリビューション。以下では、SSHの使用例はすべてOpenSSH構成で想定されています。 Linuxでの作業を明確にするために、SSHクライアントはUbuntu、Windows、およびMac OSX用に構成されます。
openssh-serverのインストールと構成
多くの構成オプションがありますOpenSSHサーバー。クライアントの構成は、サーバーの構成に基づいて行う必要があります。このセクションでは、Ubuntu ServerEditionにインストールされているSSHサーバーの例を示します。以下のクライアント構成の説明では、このサーバーの構成を使用します。
1. OpenSSH-serverをインストールするには2つの方法があります。
1.1。 Ubuntuサーバーの展開中にOpenSSHサーバーパッケージをすぐにインストールすることを選択します/
1.2。次のコマンドを実行して、リポジトリからダウンロードしてインストールします。
2.次のコマンドを使用して、/ etc / ssh / sshd_configファイルのデフォルトのSSHDサーバー構成値を表示できます。
3.3。デフォルト設定を変更する前に、必ずファイルのバックアップコピーを作成し、書き込みから保護してください。これは、エラーが発生した場合にデフォルト値にロールバックする必要がある場合に実行されます。
4.デフォルト設定はTCPポート22です。セキュリティのために、5754などの非標準値に置き換えることをお勧めします。Portディレクティブは次のコマンドで変更できます。
5.ファイルを保存します / etc / ssh / sshd_configそしてSSHDを再起動します:
サーバーがインストールおよび構成されます。現在、ポート5754でリッスンしています。デフォルトでは、ログオン権限を持つシステム上のすべてのユーザーがアクセスできます。認証は、パスワードまたはキーDSA、RSA、ed25519などを使用して実行されます。
ターミナル用のクロスプラットフォームOpenSSHクライアント。 Linux用のSSHクライアント
以前は、最も一般的に使用されると言われていましたSSHプロトコルの実装はOpenSSHであり、デフォルトでLinuxディストリビューションのほとんどのビルドに付属しています。場合によっては、OpenSSHは特定のディストリビューションのリポジトリからダウンロードできます。
パッケージの一部として、OpenSSHクライアントはに実装されています同じ名前のコマンドによって起動されるSSHプログラムの形式で。クライアントは端末を介して構成および管理されます。グラフィカルインターフェイスはありません。これは、最も単純で最も便利なバージョンと見なされています。
UbuntuへのOpenSSHクライアントのインストールと構成
リモートマシンには、OpenSSHサーバーがインストールおよび構成されています。課題は、Ubuntuがインストールされているローカルマシンからアクセスすることです。
1. Ubuntuでは、OpenSSHクライアント配布キットはデフォルトで追加されていないため、次のコマンドを使用してインストールする必要があります。
2.プログラムをインストールした後、ルートなしの端末からSSHコマンドで呼び出されます。
3.パスワード認証を使用する場合:
1)接続は次のコマンドで行われます:
- ユーザー名-リモートマシンのアカウントの名前、
- hostは、リモートサーバー(またはドメインがサーバーに委任されている場合はドメイン)のIPアドレスです。
2)コマンドを入力した後、Enterキーを押します-パスワードの入力を求められます。リモートマシンのアカウントのパスワードを入力する必要があります(セキュリティに関しては、パスワードが表示されないように注意する必要があります)。
3)正しいパスワードを入力すると、リモートサーバーのターミナルウィンドウに挨拶が表示されます。これで、必要なコマンドを実行できます。
4. DSAキーによる認証が必要な場合:
1)必要に応じて、OpenSSHクライアントから公開SSHキーと秘密SSHキーを生成できます。
2)デフォルトでは、公開鍵はファイル/home/user/.ssh/id_dsa.pubに保存され、秘密鍵は/home/user/.ssh/id_dsaに保存されます。
3)生成された公開鍵をリモートマシンにコピーし、次のコマンドを使用して認証/home/user/.ssh/authorized_keysに追加する必要があります。
これで、ユーザーはパスワードを入力せずにSSHサーバーに対して認証できます。
WindowsでのCygwinターミナル用のOpenSSHのインストールと構成
Cygwinは、公式WebサイトからダウンロードしたCygwin.exeファイルを実行してインストールします。
Cygwinは多くの異なるパッケージのビルドです。リモート端末を操作するには、OpenSSHのみが必要です。 Cygwin自体を検索することで見つけることができます。
パッケージをインストールした後、Cygwinターミナルを起動し、次のコマンドを入力する必要があります。
次に、Enterキーを押します。パスワードの入力を求められます。認証に合格すると、リモートサーバーの端末にユーザーからの挨拶が表示されます。
構文は、Linux用に実装されたOpenSSHクライアントとまったく同じです。
PuTTYGUIを備えたクロスプラットフォームSSHクライアント
Puttyは、SSHプロトコルのサポートを含むリモート管理用のグラフィカルSSHクライアントです。このプログラムはオープンソースであり、完全に無料です。
当初はOSWindows専用にリリースされていましたが、後にクライアントがLinuxに移植され、ほとんどすべての一般的なディストリビューションのリポジトリに含まれています。
Mac OSXで実行するために積極的に開発されました.
PuTTY設定ウィンドウはすべて同じように見えますオペレーティングシステム。唯一の違いは、インストール方法にあります。したがって、最初に3つのオペレーティングシステムのインストール方法を示し、次にPuTTY構成オプションを示します。
PuTTY LinuxUbuntuのインストール
1.次のコマンドでPuTTYをインストールできます。
2.起動は、ターミナルからputtyコマンドを使用するか、メニューからマウスをクリックして実行します。
3.接続パラメータを登録する必要があるクライアント設定ウィンドウが開きます。
Windows用のPuTTYのインストール
インストールするには、putty.exeファイルをダウンロードして、デスクトップなどの便利な場所に保存する必要があります。プログラムは、マウスの左ボタンを2回クリックすることで起動します。
PuTTYはMac用のSSHクライアントです。 GUIバージョンのインストールと実行
この記事の執筆時点では、PuTTYはMac OS Xで動作するように適切に移植されていませんでした。グラフィカルインターフェイスを担当する部分をコンパイルするときに、問題が発生しました。
インストールするために行うべきいくつかの準備作業があります。
1.Xcodeをインストールします。
Mac OSX用のアプリケーションを開発および構築するためのAppleのユーティリティとプログラムのパッケージ。
Mac OS X 10.7 Lionから、AppleDeveloperサイトから「Xcode用コマンドラインツール」をインストールする必要があります。
インストール後、使用許諾契約に同意する必要があります。
2.Xquartzをインストールします。
これは、Mac OSX用のX.OrgX Window System(X11)サーバーの実装です。GTK+で記述されたPuTTYのGUIバージョンに必要です。公式サイトからインストールできます。インストール後、再ログインが必要になります。
3.Homebrewをインストールします。
インストールは次のコマンドで実行されます。
次に、次のコマンドを使用して、インストールが正しいかどうかを確認する必要があります。
4. Puttyのインストールは、次のコマンドで実行されます。
Glib / GTK + / Pango / Cairoのような多くの依存関係がインストールされるため、このプロセスには30分以上かかる場合があります。
5.スタートアップファイルPutty.appの作成。
Automator.appが実行されている必要があります。ドキュメントタイプで「プログラム」を選択し、アクションで「シェルスクリプトの実行」を選択し、入力フィールドに実行可能ファイル「/ user / local / bin / putty」へのパスを入力し、「putty.app」として保存します。 「programs」ディレクトリへのファイル形式「program」。必要に応じて、標準アイコンを置き換えることができます。
SSHクライアントPuTTYの構成
グラフィカルSSHPuTTYクライアントを構成するプロセスは、すべてのオペレーティングシステムで同じように見えます。作業環境の設計により外観が若干異なります。
SSH経由でリモートマシンに接続するには、PuTTYを起動する必要があります。プログラムの表示されたウィンドウで、パラメータを設定する必要があります。
接続タイプ-接続のタイプ-SSHによって確立されます。
ホスト名(またはIPアドレス)-ホスト名、またはIPアドレス-ここでは、リモートサーバーのIPアドレス、ドメイン名、またはインターネットアドレスが示されます。示されている例では、IPアドレスは192.168.128.3です。
例として挙げたサーバー上のポート-リスニングポート-、ポート5754が構成されています。これを指定します。
必要に応じて、このセッションの設定を保存できます。
「開く」ボタンをクリックすると、ターミナルウィンドウが表示され、リモートマシンのアカウント名とパスワードを入力する必要があります。
キーのペアを使用してクライアントを認証する必要がある場合は、Windowsで実行されるputtygen.exeユーティリティが必要になります。 PuTTY-Genは、公開鍵と秘密鍵のペアを生成します。
公開鍵はサーバーに追加する必要があり、SSH標準で生成されます。最初のログインパスワード認証を行った後、ターミナルのOpenSSHまたはPuTTYを使用して、同じ方法でキーを追加できます。
秘密鍵はこの形式で生成されます。ppkおよびクライアントに追加されます。ツリーの左側で、SSHを検索し、リストを展開して、Authを検索する必要があります。このパラメーターで、[認証用の秘密鍵ファイル]フィールドで鍵を選択します。
これらの操作の後、ユーザーはパスワードを入力せずにサーバーに対して認証できます。
現時点では、PuTTYはGUIを備えたユニバーサルSSHクライアントと見なされています。サードパーティの開発者であるGao-Fengは、PuTTYのモバイルバージョンとしてAndroid用のSSHクライアントを作成しました。
最高のSSHクライアント
どのSSHクライアントを使用するかについてのコンセンサスはまだありません。システム管理者は、自分のニーズに基づいてユーティリティを選択します。
一般的に、* UnixシステムのユーザーはOpenSSHパッケージの標準SSHを使用します。明確なユニバーサル構文があり、端末から直接アクセスできます。セキュアファイルコピー(SCP)などの追加ツールを使用するために、追加のプログラムをインストールする必要はありません。必要なものはすべてOpenSSHに含まれています。
GUIファンの方通常、Windowsオペレーティングシステムで実行されます。PuTTYを使用してください。これは、Windowsに最適なSSHクライアントであると考えられています。追加のモジュールをダウンロードする必要がある場合でも、トンネリング、ファイルのコピーなどに必要なすべてのツールセットがあります。