Nautilusでリモートsshディレクトリを設定する。 UbuntuでSSHプロトコルを使用する方法:インストールと設定。

同時に、あるPCから別のPCに移動して、データを表示するだけでなく、いくつかの操作を実行できるようにする必要がある場合もあります。 SSHプロトコルは、特にUbuntuのようなタスクに最適です。 これにより、サーバーとクライアントを安全に組み合わせることができます。また、インストールと構成には、指示に従うことで時間がかかりません。

Ubuntuにサーバーをインストールする方法

実際には、デフォルトでは オペレーティングシステム  Ubuntuクライアントは既にインストールされています。 したがって、主なものは、コンピュータ上のサーバOpenSSHプログラムのインストールとその後の設定です。 サーバをインストールするには、端末を開き、次の行を入力します:sudo apt-get install openssh-server。 その後、Ubuntuはあなたにパスワードを要求します - 確認してください。 インストールが完了すると、正常にインストールされたことを示すメッセージが表示されます。 その結果、サーバーはOpenSSHがインストールされます。 OpenSSHサーバはこのOSのユーザの間で非常に普及しているため、このプログラムはデフォルトでUbuntuディストリビューションに置かれています。

UbuntuでサーバSSHを設定する

ここで最も重要なことは、OpenSSHサーバを有効にしてクライアントがホスト上で安全なプロトコルを使用できるようにする前に、OpenSSHサーバを適切に設定する必要があることです。 不適切な設定  セキュリティレベルが低くなり、サーバーがハッキングされる可能性があります。

セキュアな暗号化されたチャネルを介してデータを接続して転送するには、SSHプロトコルが必要です。そのため、時間をかけて設定を把握することをお勧めします。

サーバーの動作方法は、構成ファイルconfigに書き込まれます。 特に、SSH保護を通過するためにクライアントが満たさなければならない要件を記述しています。 まず、システムを管理するユーザーを決定します。 デフォルトのユーザーはrootです。 しかし、この設定をそのままにしておくことは安全ではありません。ルートユーザーには多くの権限があり、誤ってシステムに危害を加える可能性があります。サーバーに接続できないようにする方がよいからです。

SSH経由で別のコンピュータを安全に使用できるように、サーバー上に別のユーザーアカウントを再インストールする必要があります。 これを行うには、rootの代わりに別のユーザーを追加する必要があります。 コマンドライン:adduser username。 しかし、これでは十分ではありません。結局のところ、rootユーザーが必要になることもあります。 追加されたユーザーをスーパー管理者の半分にして、一時的に受け取れるようにします ルート権。 これを行うには、rootでログインし、次の行を表示します:gpasswd -a username sudo。 これにより、最高レベルのアクセス権を持つ新しいユーザーがsudoユーザーグループに追加されます。

SSHを使用してパブリックサーバーを作成し、クライアントがそのコンピュータにログオンしない場合は、rootユーザーを完全に削除することをお勧めします。 自分の能力に自信があり、ホストを公開する予定がない場合は、クライアントをスーパー管理者にしてパスワードで保護することができます。 しかし、時々このエラーメッセージが表示された後、アクセスが拒否されました。 パスワードを入力してスーパーユーザーアカウントにログインしようとした後に拒否された刻印アクセスは、構成ファイルconfigに何らかの矛盾がある可能性があります。

アクセスが拒否されないようにするには、すべての設定が正しいかどうかを慎重に確認する必要があります。 アクセス拒否が発生する最も一般的な理由は、一般ユーザーとrootの両方に対してパスワード認証オプションを有効にすることです。 拒否されたアクセスを削除するには、パスワードなしでyesの代わりにPermitRootLoginを変更します。 そして、PermitRootLogin yesと書いてください。 その後、サーバを再起動して(サービスsshの再起動)、メッセージアクセス拒否は最終的に消えます。

次の重要なステップは、強力なユーザー認証のアクティブ化です。 パスワードを入力することによる承認は、あなたのアカウントを保護するために、すでに古く、非効率的な方法です。 今すぐあなたがそれを拾うことによってパスワードを解読できる多くのプログラムがあります。 公開鍵を使って認証を行う方がよいからです。 つまり、公開鍵認証を使用し、設定ファイルのこの項目の横にyesを付ける方がよいでしょう。

公開鍵を確認してサーバに入るには、まずそれを生成する必要があります。 Ubuntuでは、鍵を生成するのが非常に便利です。何もダウンロードする必要がないからです 追加プログラム  - 端末ssh-keygenでスコアをつけるだけで十分です。 その後、生成されたキーの場所に関する情報が表示されたメッセージが表示されます。 .sshフォルダにあります。 その後、システムはパスワードを要求しますが、パスワードを空のままにすることを強くお勧めします。そうしないと、操作を実行するたびにパスワードが入力されます。

次のステップは、生成された公開鍵をサーバ上の信頼できるリストに追加することです。 まず、公開鍵をコピーする必要があります。 これは、.sshフォルダの.pubファイルにあります。 それをコピーしてサーバーに移動します。 サーバーには.sshフォルダーも必要です。 それがなければ、自分で作成する必要があります。 その後、標準のテキストエディタを使用してauthorized_keysファイルを作成します。 ここで公開鍵を置く必要があります。 その後、確認なしでサーバーに入ることができます。 認証は自動バックグラウンドモードで行われ、これは同時に非常に便利で安全です。

一般的に、これはSSHプロトコルの設定が終了する場所です! ポート22を別のポート22に変更できない限り。

sshサーバとsshクライアントについては、よく知られているOpenSSHパッケージを使用します。

インストール

次のコマンドでOpenSSHをインストールします。

sudo apt install ssh

サーバーのセットアップ

インストール時に、SSHサーバーが自動ロードに自動的に追加されます。 次のコマンドを使用して、起動、停止、再起動を制御できます。

sudoサービスssh stop | start | restart

メインのSSHサーバー構成ファイルは、/ etc / ssh / sshd_configファイルです。このファイルは、スーパーユーザーのみが読み取りまたは編集できます。 このファイルを変更するたびに、sshサーバを再起動して変更を適用する必要があります。

Ubuntu 16.04のSSHサーバー設定の例:

#ポート、IP-アドレスやプロトコルが、私たちは、ポート22# "の任意" に耳を傾ける何を - 任意のは## "INET"(IPv4のみ)の## "INET6"(IPv6のみ)一部のインターフェイスでは#1 AddressFamilyのinet#/ネットワークが許可されているアクセスの場合 #指定しないで、すべてのアドレスをリッスンします。 SSHを実行します#ListenAddress :: #ListenAddress 0.0.0.0#プロトコル(rekomenduestya秒)プロトコル#2プロトコルバージョン2 HostKey(ホスト鍵)の/ etc / sshを/ ssh_host_rsa_key #HostKeyの/ etc / sshを/ ssh_host_dsa_keyにのためのプライベートホストキーを含むファイルを指定します。 権限の#HostKeyの/ etc / sshを/ ssh_host_ecdsa_key #HostKeyの/ etc / sshを/ ssh_host_ed25519_key#の分離は、セキュリティのUsePrivilegeSeparationはい#の平均寿命とプロトコルバージョンのためのキーのビット1 #KeyRegenerationInterval 3600 #ServerKeyBits 1024#ログ#デーモンは##ユーザーの##のサイズを含め AUTH ## LOCAL0 ## LOCAL1 ## LOCAL2 ## LOCAL3 ## LOCAL4 ## LOCAL5 ## LOCAL6 ## LOCAL7#SyslogFacilityにAUTH#SILENT ## QUIETは## FATALの##のエラーは## INFO ## VERBOSE ## DEBUG ## DEBUG1#DEBUG2#DEBUG3#LogL evel INFO#認証:LoginGraceTime 45#ルートユーザーのアクセスを許可または拒否します。 # "Yes" - スーパーユーザーがログインできます。 #現在のグローバル認証方式が適用されます。 # "パスワードなし" - スーパーユーザがログインできます。 #パスワード認証は無効になります。 # "強制コマンドのみ" - スーパーユーザは、公開鍵に基づいて認証を使用してログインし、実行に必要なコマンドを転送する場合にのみ#を使用できます。 #スーパーユーザーのその他の認証方法はすべてブロックされます。 # "いいえ" - スーパーユーザーはsshを使ってログインできません。 PermitRootLogin no StrictModes yes#純粋なRSA認証が有効かどうかを示します。 #実際のプロトコルバージョン1のみ。RSAAuthentication yes#公開鍵認証を使用するPubkeyAuthentication yes#ユーザーを認証するために使用される公開鍵を含むファイルを指定します。 #AuthorizedKeysFile%h / .ssh / authorized_keys#ホスト検証に基づく認証プロセスでの.rhostsファイルと.shostsファイルの使用を防ぎます。 はいあなたは、プロトコルバージョン2でHostbasedAuthenticationためRhostsRSAAuthentication(RhostsRSA認証の許可)がありません#似ては/ etc /たssh_known_hostsにホスト鍵が必要になりますこれが機能するためには#何の#は、sshdは、「既知のホストを」ユーザ#を無視するかどうかを指定していないの〜/ .ssh / known_hostsのRhostsRSAAuthentication(RhostsRSA認証の許可)#IgnoreUserKnownHostsためIgnoreRhostsはい# 何の#は、質問の認証タイプを許可し、ChallengeResponseAuthenticationのに答えるためにかどうかを示していない何の#は何の#ケルベロスオプション#はパスワード提供#ユーザー#を必要とするかどうかを指定しないrazreshinaパスワード認証PasswordAuthenticationのかどうかを示していない空のパスワードで認証(推奨されません)PermitEmptyPasswordsを含み AFSがアクティブで、ユーザーがTGTのKerberos 5を受信した場合は認証#KerberosAuthenticationのために何の#、#は、ユーザ#へのAFSトークンがあなたのホームフォルダにアクセスする必要があります取得しようとしないでください。 #デフォルトは "no"です。 #KerberosGetAFSToken no#Kerberosによる認証が失敗した場合の対処方法を示します。 #value = "yes"の場合、パスワードは追加のローカル認可メカニズムを使用してチェックされます。# - / etc / passwdなどです。 #デフォルトで - "はい"。 #KerberosOrLocalPasswd yes#ユーザーチケット#キャッシュを持つファイルを、セッションの完了時に自動的に削除する必要があるかどうかを示します。 #デフォルトで - "はい"。 #KerberosTicketCleanup yes#GSSAPI options#ユーザー認証が#GSSAPIベースで許可されるかどうかを指定します。 デフォルトは "no"です#GSSAPIAuthentication no#セッション終了時にユーザー認証の資格情報を自動的に#コールするかどうかを指定します。 #デフォルトは "yes"です#GSSAPICleanupCredentials yes#X11グラフィックスサブシステムのリダイレクトが許可されているかどうかを示します。 #X11 Forwarding yes#X11リダイレクションとして#でsshdで使用可能な最初のディスプレイの番号を示します。 #X11DisplayOffset 10#ユーザが対話的にログインしたときに、sshdが/ etc / motd情報を画面に表示するかどうかを示します。 PrintMotd no#ユーザがインタラクティブにログインしたときにsshdが最後のセッションの日付と時刻を表示するかどうかを示します。 #デフォルトで - "はい"。 PrintLastLog yes#接続を維持するために、システムがクライアントにTCPメッセージを送信する必要があるかどうかを示します。 TCPKeepAlive yes#クライアントからの応答を受信せずに、sshdが1行で送信するメッセージの数をクライアントに設定します。 しきい値に達してクライアントが応答しなかった場合、sshdは#sshセッションを中断してクライアントを切断します。 #ClientAliveCountMax#時間間隔を秒単位で設定します。 この間にクライアントとのデータ交換がなかった場合、sshd#はクライアントからの応答を要求する暗号化されたチャネルでメッセージを送信します。 デフォルトは0です。 #そのようなメッセージは送信しません。 このディレクティブは#ssh2プロトコルのみで動作します。 #ClientAliveInterval#対話型セッションでログインを使用するかどうかを指定します。 デフォルトは "no"です。 #UseLogin no#許可されていないsshd接続の最大同時実行数を指定します。 #さらに、3つの値をパラメータとして指定し、コロン "start:rate:full"(# "3:30:30"など)で#で区切って、接続の初期リセットを設定することができます。 #sshdは、#が既に "開始"(3)の不正な接続をしている場合、# "rate / 100"の確率で接続試行を拒否します(この例では30%)。 #確率が直線的に増加し、無許可接続の数が "full"(30)に達すると、接続数は拒否されます。 #MaxStartups 3:30:30#認証手続きの前にユーザーに表示されるテキストバナーを含むファイルを示します。 このオプションは、ssh2プロトコルでのみ使用できます。 バナー/etc/issue.net#クライアントが地域環境変数を転送できるようにします。AcceptEnv LANG LC_ *#外部サブシステムを定義して設定します(たとえば、ファイル転送デーモンの# - ファイル転送デーモン)。 サブシステムSFTPの/ usr / libに/のopenssh / SFTPサーバ#はインタフェースPAM(プラグ可能認証モジュール#インタフェース)を有効に.IFは「はい」に設定 - #認証のすべてのタイプのPAM認証の処理モジュールセッションとアカウント#以外には#に基づいて使用されます リクエストレスポンス(ChallengeResponseAuthenticationと#PasswordAuthentication) PAMの要求応答の認証は通常、#パスワード認証と同じ役割を果たします。#PasswordAuthenticationまたは#ChallengeResponseAuthenticationのいずれかを無効にする必要があります。 #UsePAMディレクティブが有効な場合、root以外のユーザーの代わりに#sshdを実行することはできません。 #デフォルト値は "no"です。 UsePAMはい

上記のテキストを自分のsshd_configにコピーして、後で使用することができます。

潜在的な攻撃者はシステムにほとんど無制限にアクセスできる機会があるため、正しく設定されていないSSHサーバーはシステムセキュリティの巨大な脆弱性です。 さらに、sshdには、利便性とセキュリティの向上を実現するために望ましい多くの便利なオプションがあります。

Port、ListenAddress、およびAddressFamily

これらの3つのパラメータは、サーバーが着信接続を待つポートとアドレスを決定します。 まず、処理されたアドレスのファミリを実際に使用するファミリに制限することは可能です。つまり、IPv4のみを使用する場合はIPv6を無効にし、逆の場合は逆にします。 これは、例えばIPv4を許可し、IPv6を禁止するために、AddressFamilyパラメータを使用して行うことができます:

第2に、sshdがリスンしている標準ポート(22)を変更することが望ましいです。 これは、多数のネットワークスキャナが常にポート22に接続しようとしており、少なくともユーザー名/パスワードを繰り返してアクセスするためです。 パスワード認証を無効にしても、これらの試みはログを詰まらせ、(大量に)sshサーバーの速度に悪影響を与える可能性があります。 何らかの理由で標準ポートを変更したくない場合は、さまざまな外部ユーティリティを使用して、ブルートフォースター(fail2banなど)や組み込みのもの(MaxStartupsなど)と対戦することができます。
  ListenAddressディレクティブを使用して、Portディレクティブと各インターフェイスの特定の値を使用して、すべてのインターフェイスの絶対値としてポートを設定できます。

スーパーユーザーのリモートアクセスを禁止する

デフォルトでは、ルートアクセスはパスワードで拒否されます(キーで可能) - PermitRootLoginオプションはwithout-password4に設定されます。 しかし、Ubuntuのデフォルトでは、システムのインストール時に追加されたユーザは、sudoを介してすべての管理タスクを解決する能力を持ち、sshを介してシステムへのアクセスをルートする機能を持っています。 完全に無効にすることをお勧めします。 このオプションは、強制コマンドのみのモードでのみ使用してください。

パスワード認証

デフォルトで許可されているパスワード認証は、事実上、sshdにログインする最も基本的な方法です。 一方で、これは新しいユーザーの構成と接続を簡素化します(ユーザーは自分のシステムのログイン/パスワードを知る必要があります)。一方、パスワードはいつでも拾うことができ、ユーザーはしばしば複雑で長いパスワードの作成を怠ります。 特別なボットは、インターネットから利用可能なsshサーバーを絶えずスキャンし、データベースからユーザー名/パスワードを破棄してログインしようとします。 パスワード認証を使用することは強くお勧めしません。

何らかの理由でパスワード認証を使用したい場合は、誰も空のパスワードでログインできないようにしてください。 これを行うには、指令PermitEmptyPasswords noを設定します

プロトコルSSH1およびSSH2

すでに述べたように、sshdはSSH1とSSH2プロトコルで動作します。 しかし、安全でないSSH1の使用は避けてください。 sshdは sshプロトコル2

SSH2 RSA鍵に基づく認証

最も好ましい認証方法は、SSH2ベースのRSAキー認証です。 この方法では、ユーザは片方の鍵を秘密にし、もう片方を公開鍵のペアで生成する。 公開鍵はサーバにコピーされ、ユーザの身元を確認するために使用されます。 キーのペアの作成とサーバーへの配置方法の詳細については、SSHクライアントの説明を参照してください。

SSHクライアントの設定

キー入力は最も安全と考えられ、ほとんどの場合サーバー側でこの機能が有効になっているため、スーパーユーザー権限を使用する必要はありません。 クライアントマシンで、次のキーを生成します。

Ssh-keygen

鍵ファイルを保護するためのパスワードを入力するように提案しています(ファイルが間違っていると便利です)。 コマンドを使用して公開鍵をサーバーに転送します

Ssh-copy-id -i〜/ .ssh / id_rsa.pub user_in_server @ server_address

すべて、あなたは行くことができます。

sshが非標準ポートで実行されている場合

Ssh-copy-id -i〜/ .ssh / id_rsa.pub -p your_port user_ on_server @ server_address

インターネット接続を介してコンピュータへのリモートアクセスを整理する機会は、多数存在します。 それらのうちのいくつかは非常に複雑で、専門家の専門家だけが使用しますが、他のユーザーは非常に簡単で、経験の浅いユーザーでもそれを習得できます。 我々は、TeamViewerプログラムとVNCプロトコルについて、いくつかの方法について書いています。

UbuntuでSSHプロトコルを扱うことのニュアンス。

この記事では、最近、環境でほぼ標準となっているセキュアな接続プロトコルSSHについて説明します linuxユーザー。 これは暗号化をサポートしているため非常に信頼性が高く、設定も非常に簡単です。 SSHプロトコルの機能を検討し、サーバーとクライアントの設定を行う方法を学びます。 あなたが必要とするのは、Ubuntuオペレーティングシステムがインストールされたコンピュータとインターネット接続の存在だけです。

SSHとも呼ばれるSecure Shellは、セキュリティ保護のための特別なプロトコルです リモートアクセス  コンピュータを介して ネットワーク接続。 このプロトコルには、セキュアな接続の構成、リモートで接続するコンピュータにターミナルコマンドラインを起動する、グラフィカルインターフェイスでアプリケーションを起動する、ファイル転送、プライベートネットワークの展開など、多くの機能があります。

プロトコルを管理する多くのユーティリティがあります。 手術室で ubuntuシステム 最も有名なのはOpen SSHです。 これは、オープンライセンスと最も必要な機能の完全なセットを持つ完全に無料の製品です。 SSH接続を管理するクライアントは既にUbuntuディストリビューションに含まれていますので、サーバコンポーネントをインストールして設定するだけです。 制御は、端末内のコマンドを介して行われる。


UbuntuにSSHをインストールする

プロトコル SSHクライアント  その管理は一般的に受け入れられている標準であるため、 ターミナルubuntu。 これを行うには、キーボードのCtrl + Alt + Tでキーの組み合わせを押して端末を起動し、sudo apt-get install sshコマンドを使用します。 ダウンロードを準備したら、ユーティリティは続行するかどうかを尋ねます。 キーボードをロシア語に切り替え、Dキーを押します。 Ubuntuのインストール  sshは数秒で完了します。 システムの電源が入っているときに自動起動を有効にするには、sudo systemctl enable sshdコマンドを使用します。 したがって、自動起動からサービスを後で削除する場合は、sudo systemctl disable sshdコマンドが必要です。


これですべての動作を確認できます。 ローカルのSSHサーバーに接続するだけで十分です:ssh localhost。 ユーティリティはスーパーユーザーのパスワードを要求し、入力したアドレスを許可されたリストに追加することもできます。 すべてが正常に動作した場合は、そのアドレスへの最後の接続の日付に関する通知で終了する小さなメッセージが表示されます。

これで、IPアドレスとユーザー名が分かっていれば、ネットワーク上の任意のコンピュータに接続できます。 これを行うには、端末で次の形式でコマンドを入力する必要があります。

ssh username @ ip_address

たとえば、アドレス132.14.25.10のVasi Pupkinのコンピュータに接続する場合、コマンドは次のようになります。

ssh [電子メールで保護された]

UbuntuでSSHを設定する

SSHサーバーで正しく安全に動作するためには、SSHサーバーを特定の方法で構成する必要があります。 これを行うには、/ etc / sshディレクトリにあるsshd_configパラメータファイルを編集する必要があります。 注目すべきことは、それを単に開くことによって変更することはできないということです ファイルマネージャ  プレーンテキストエディタで開きます。 不十分な権利についてシステムから通知され、変更を保存することはできません。 したがって、もう一度ターミナルといくつかのコマンドの知識が必要になります。次にこれについて説明します。 Ubuntuオペレーティングシステムでsshサーバを設定するために必要な手順を見てみましょう。



SSH設定で変更できるもの



最小限必要なコマンド



結論

ご覧のように、Ubuntuオペレーティングシステムを搭載したコンピュータにsshプロトコルを設定することは非常に難しいことではありません。 すべてを一度慎重に調整する必要があるのは、 詳細な手順リモート接続機能を使用します。 ご不明な点がございましたら、コメントにお尋ねください。

SSHは「セキュアシェル」を意味し、リモートマシンに安全にコマンドを送信できるネットワークプロトコルです。 オペレーティングシステムのデフォルトで Ubuntuサーバー  12.04 ssh-serverはインストールされていませんが、sshはリモート管理に最も必要なサーバシステム上にあります。 このガイドでは、Ubuntu Server 12.04 LTSにsshサーバーをインストールする方法について説明します。

インストールは標準のUbuntuリポジトリから実行されるため、インターネットへの接続が設定されている必要があります。

Ubuntu Server 12.04が使用されています Opensshサーバインストールされます。 次のコマンドを実行します。

sudo apt-get openssh-serverをインストールする

インターネットへの接続の速度にもよりますが、インストールには時間がかかりません。 インストールが完了したら、すぐにsshdサービスを開始してsshサーバの使用を開始できます。これは、 インストール時にインストールされるすべてのOpenSSH設定は、高度なセキュリティを備えています。 OpenSSHサーバを起動するには、次のコマンドを実行します。

ただし、制限を追加してセキュリティを強化したい場合は、設定を少し変更する必要があります。 ほぼすべてのサーバーと同じように ソフトウェア、SSH設定は、設定ファイル(この場合は/ etc / ssh / sshd_config)内のパラメータの名前とその値の対応です。

sshサーバのセキュリティを強化する

設定ファイル/ etc / ssh / sshd_configを変更する前に、そのコピーを作成する必要があります。 たとえば、ファイルをホームフォルダにコピーすることができます。

sudo cp / etc / ssh / sshd_config〜

これで、sshサーバの設定に進むことができます。 / etc / ssh / sshd_configファイルをテキストエディタ(viなど)で開きます。

sudo vi / etc / ssh / sshd_config

sshサーバポートを変更する

sshサーバが使用する標準のTCP / IPポートは22です。これを知っている多くの自動ハッキングプログラムはネットワークをスキャンし、開いている22個のポートを検出し、sshプロトコルを使用して接続してパスワードを取得しようとします。 ユーザー名とパスワードがシンプル(もちろん容認できない)の場合、そのユーザー名とパスワードが拾われ、攻撃者がシステムに侵入する危険性があります。 ほとんどの場合、ポートを他のポートに変更すると、sshサーバーが自動ハッキングシステムから隠れることになります。 ポートを変更するには、設定ファイルの "Port 22"行を探し、ポート値を変更します。たとえば、次のようになります。

sshポートを変更すると、サーバーに接続しようとするときに少なくともポート番号を覚えておく必要があるなど、常に良い解決策になるとは限りません。 ブルートフォースパスワードから自分自身をさらに保護するには、パスワードではなくsshキーを使用します。

ssh rootログインの防止

ssh経由でのrootログインの防止は、攻撃者がパスワードを選択してrootとしてシステムにログインするとすぐにシステム全体を完全に制御できるため、セキュリティをいくらか向上させることができます。 「はい」から「いいえ」へ:

特定のユーザのみにsshログインを許可する

セキュリティを高めるもう1つの方法は、ssh経由でログインできるユーザー数を制限することです。 これは、 "AllowUsers"ディレクティブを使用して行うことができます。 設定ファイルに記述されている場合は、そこに記述されているユーザだけがログインできます。 たとえば、 "howtoit"ユーザだけがssh経由で/ etc / ssh / sshd_configファイルの最後に行を追加することでログインできるようにしたいとします。

複数のユーザーをリストに追加する場合は、スペースで区切って複数のユーザーを追加するだけです(例:

someUsers howtoitruを許可するユーザー

設定が完了したら、設定ファイルを保存して閉じ、sshサーバを再起動します。

これで、sshクライアントを使用して別のマシンからUbuntu Server 12.04システムに接続できます。

私たちは Ssh  その利点は何か、私たちは最も簡単な例を実装しました Ssh-サーバーとクライアント。

今日私はもっと話します 詳細設定 Ssh-サーバー。

有名なフレーズとして、 Linux  すべてがファイルです "ので、設定する Ssh-サーバーは必要であり、1つを編集するのに十分です 設定ファイル。 彼の完全な道は / etc / ssh / sshd_config。 編集するには、テキストエディタを使用してスーパーユーザー権限でこのファイルを開きます。

編集する前にちょうどいいことがあります バックアップ  ファイル:

Sudo cp /etc/ssh/sshd_config(.bak)

さて、その内容を見てみましょう:

Sudo nano / etc / ssh / sshd_config

このファイルを変更するたびに、再起動する必要があります ssh-サーバーを使用して変更を適用します。

ご覧のとおり、ここにはいくつかのパラメータがありますが、それぞれを徐々に扱います。

ポート

ここでは、私たちのサーバーが聞くポートを規定しています。 デフォルトではリッスンします 22   ポート TCP / IP。 興味深い事実は、複数のポートを指定できることです。 例えば:

ListenAddress

インタフェースによる許可の制限 (ListenAddress)

設定の一般的なビューは、次のように記述できます。

リスニングアドレスホスト| IPv4_addr | IPv6_addr ListenAddress:ポート

サーバーを「聴く」ネットワークアドレスを指定します。
  サーバーに異なるネットワークインターフェイスを使用するように構成されている場合 IPこのパラメータへのアクセスを制限することができます。
  たとえば、サーバー上で次のように 4   ネットワークインターフェイス:

Eth0-192.168.0.1 eth1-192.168.0.2 eth2-192.168.0.3 eth3-192.168.0.4

デフォルトでは   ssh-サーバーは接続をまったく待っています   IPアドレス。 ユーザーがインターフェイスでのみログインするようにする場合 2   と 3 これを行う必要があります:

ListenAddress 192.168.0.2 ListenAddress 192.168.0.3

ここでは、ポートを指定することもできます。 例えば:

ListenAddress 192.168.0.2:222

ポートが指定されていない場合、 ssh  このアドレスで聴く
  オプションで指定されたポート ポート。  あなたが使用する場合 ListenAddress  ポートを指定せずに、オプション ポート  オプションに先行する必要があります ListenAddress。  指定されていない場合 ListenAddress、  デフォルトでは、サーバーはすべてのローカルアドレスをリッスンします。

住所ファミリー

どの家族 IP  アドレスはサービスで使用する必要があります   ssh。 可能なオプション:
"Any"  - 任意
"Inet"  (のみ IPv4)
"Inet6"  (のみ IPv6)
  デフォルトでは - "Any"。

可能であれば、処理されたアドレスのファミリを実際に使用するファミリに制限することは意味があります。つまり、 IPv4  - 無効にする Ipv6逆もまた同様である。

たとえば、 IPv4  禁止 IPv6:

AddressFamily inet

プロトコル

ssh  プロトコルで動作することができます Ssh1  と Ssh2。  さらに、安全でない Ssh1  強くお勧めします。 メイク ssh  プロトコルのみで作業する Ssh2  そうであることができます:

プロトコル2

PermitRootLogin

スーパーユーザーの権限の可能性

デフォルトでは リモートサーバー  ユーザー別 ルート  誰も禁止しない。 しかし、それは非常に安全ではありません。 この代わりに、ユーザーアカウントとしてログインする方が正しいでしょう。 アカウント  コマンドで権限を昇格させてください 'Su - '、  どちらかを使用する   'スド'。

組織内に複数のシステム管理者がいて、すべてがスーパーユーザーの下にあるサーバーに接続している場合、どの管理者がサーバー上にあるのかを常に知ることはできません。 したがって、ユーザーの下で直接承認機能を無効にした後 ルート、 システム管理者  最初は自分のアカウントでログインし、それ以降はスーパーユーザー権限を取得します。 これにより、サーバーとシステム管理者の操作をより簡単に監査できます。
  上記の機能を無効にするには、パラメータを無効にします PermitRootLogin値を設定することによって "いいえ"。

PermitRootLoginいいえ

PermitEmptyPasswords

空のパスワードをブロックする

PermitEmptyPasswordsいいえ

AllowUsers、AllowGroups

デフォルトでは、サーバーの任意のユーザーがログインできます。 アクセスが許可されているユーザーの数を制限する方がよい ssh
  これは、システムの多数のユーザーを作成するときに便利ですが、 ssh  ほんの一部がほしい。

設定ファイルでこれを行うには sshd_config  サーバー上に存在する特定のユーザーを追加する必要があります。 以下の例では、これらはユーザーです。 ジョンピーター  と マイケル  誰がサーバーにログインすることが許可されているかを示します。 ユーザー名はスペースで区切ります。

AllowUsersジョンピーターマイケル

定義されたグループに存在するすべてのユーザーを追加する場合は、下の例のように指定する必要があります。 サーバーにログオンできるユーザーグループもスペースで区切られています。

AllowGroups開発者管理者

DenyUsers、DenyGroups

特定のユーザーまたはグループへのアクセスを許可するパラメータとは異なり、サーバーへのアクセスが拒否されたユーザーまたはグループを指定することもできます。
  これを行うには、設定ファイルに追加します sshd_config  パラメータ 拒否者スペースを介して、サーバーへのアクセスが拒否されたユーザーを示します。 以下の例では、これはシステムです apache、  非常にリアルな ボリス。

DenyUsers apache boris

個々のユーザーではなく、ユーザーを含むグループ全体にアクセスを拒否するパラメータもあります。 これはパラメータです。 拒否グループ  グループはスペースで区切られています。

DenyGroupsマーケティングハッカー

禁止パラメータと有効化パラメータの組み合わせを使用できます。 拒否者, 許可ユーザー, 拒否グループAllowGroups.

LoginGraceTime

あなたがログインしようとすると ssh  あなたが持っているサーバーに 2   ユーザー名とパスワードを入力します。 これを行わないと、サーバーへの接続が終了します。 2   承認データを待つ時間は非常に多くあります。 限定されるべきである 1   分またはさらには 30   秒

これを行うには、パラメータを変更します LoginGraceTime  ファイルを編集して sshd_config  必要な時間を示します。 下の例では、 1   分

LoginGraceTime 1m

ClientAliveInterval

シェル内でのアクティビティなしの切断

サーバーに正常にログインした後、コンソールで何も実行していない時間が経過して自動的に接続を切断できることを確認することができます。 これは通常、非活動時間と呼ばれます。

使用 バッシュ  これを実現するには、環境変数を変更します TMOUT。

イン Openssh  これは、パラメータの組み合わせによって達成される ClientAliveCountMax  と ClientAliveInterval  設定ファイル sshd_config。

  • ClientAliveCountMax  - 最大量を示します。 チェックアライブ  送信されたメッセージ ssh-彼が何の応答も受けていないサーバー ssh-顧客 デフォルトは 3.
  • ClientAliveInterval  - タイムアウト(タイムアウト)を秒単位で示します。 指定した時間が経過すると ssh-サーバーから送信されます チェックアライブ  彼からの応答を期待して、クライアントにメッセージ (応答)。 デフォルトは 0,   つまり、サーバーは検証のためのメッセージを送信しません。

あなたの   ssh-クライアントは自動的に切断されます 10   分( 600   秒)、設定ファイルを変更する必要があります sshd_config  次のようにします。

ClientAliveInterval 600 ClientAliveCountMax 0

それは今のところすべてです。 基本的には、これは十分なセットアップとセキュリティのためには十分だと思います。 ssh次のパートでは、さらにいくつかのパラメータを見ていきます。   ssh-鍵ベースの認証について議論することもできます。

誰にも幸運をもたらし、私たちのブログですぐにお会いしましょう!

テーマを継続する:
オペレーティングシステム

ラップトップに保存されたデータを保護するために、ユーザーはパスワードを設定します。 しかし、時々、コードを覚えていないなど、不愉快な状況があります...