GNU/Linux >> Linux の 問題 >  >> Linux

UbuntuおよびDebianベースのディストリビューションへのOpenSSHのインストールと設定

UbuntuデスクトップでSSHを有効にする場合 、次のコマンドを使用します。

sudo apt install openssh-client

UbuntuサーバーでSSHを有効にする場合 、次のコマンドを使用します。

sudo apt install openssh-server

詳細については、記事の残りの部分をお読みください。

すべてのシステム管理者と開発者は、より迅速な管理とデバッグの目的で、システムへのリモートログインの必要性を経験しています。

IT環境では、最近のほとんどすべてのsysadminタスクはリモートログインを介して実行されます。

また、システム管理者だけでなく、通常のユーザーでもサーバーにリモートログインする必要がある場合があります。

では、どのようにしてLinuxシステムにリモート接続しますか?リモートログインに使用できるツールは複数ありますが、Linuxに関しては、SSHが最も一般的な選択肢です。

SSHは、セキュアシェルの略で、あるコンピューターから別のコンピューターへのリモートログインを安全に行うためのプロトコルです。

ここで問題となるのは、Ubuntu、Debian、または使用している他のLinuxディストリビューションでSSHをどのように有効にするかです。

SSHは単なるプロトコルであり、このプロトコルはlsh、Dropbearなどの多くのツールを介して実装できますが、SSHで最も広く使用されているツールはオープンソースソフトウェアOpenSSHです。

このチュートリアルでは、OpenSSHをインストールし、UbuntuおよびDebianベースのLinuxディストリビューションでSSHを有効にするように構成する方法を説明します。上記の手順は、Ubuntu/Debianのデスクトップバージョンとサーバーバージョンの両方に適用できます。

また、SSHの基本を理解するために、この記事を読むことをお勧めします。

UbuntuおよびDebianでOpenSSHを使用してSSHを有効にする

前述したように、OpenSSHはSSHログインを行うためのソフトウェアです。ポートをリッスンし、着信ユーザーを認証して、リモートユーザー用の新しいシェルを作成します。

SSHが機能するには、ユーザーがログインする必要のあるリモートシステムでsshサーバーが実行されている必要があります。また、ユーザーがリモートシステムにログインするローカルシステムにsshクライアントが必要です。

OpenSSHは、これらの機能の両方を提供します。エンドユーザー用のopenssh-clientとリモートサーバー用のopenssh-serverがあります。

OpenSSHをインストールする前に、SSHがシステムにすでにインストールされ実行されているかどうかを確認する必要があります。

SSHがすでに有効になっていて実行されているかどうかを確認します

システムでSSHがすでに有効になっている可能性が高くなります。確認するには、リモートサーバーまたはエンドユーザーシステムのいずれかで次のコマンドを実行します。

ps -aux | grep ssh

SSHが有効になっている場合は、デスクトップにSSHエージェントに関する情報が表示されます。

ps -aux | grep ssh

abhishek  1736  0.0  0.0  11304    36 ?        Ss   08:18   0:00 /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu

abhishek 10462  0.0  0.0  21536  1044 pts/0    S+   10:15   0:00 grep --color=auto ssh

サーバー上で、実行中のSSHデーモンに関する情報が表示されます。

ps -aux | grep ssh

root       920  0.0  0.2  72296  6028 ?        Ss    2018   0:17 /usr/sbin/sshd -D

root     22708  0.0  0.3 108172  7364 ?        Ss   05:13   0:00 sshd: [email protected]/0

root     22873  0.0  0.0  14856  1068 pts/0    S+   05:14   0:00 grep --color=auto ssh

上記のような出力が表示されない場合は、システムでSSHが実行されていません。 OpenSSHをインストールする時が来ました。

UbuntuおよびDebianへのOpenSSHのインストール

OpenSSHのインストールに進む前に、openssh-clientとopenssh-serverについて簡単に説明します。

openssh-client: これは、SSHを使用してリモートLinuxシステムに接続する場合に必要なパッケージです。これは、エンドユーザー/デスクトップユーザーとして必要なものです。

openssh-server: これは、SSH経由でシステムにリモートログインできるようにする場合に必要なパッケージです。これは、Linuxサーバーに必要なものです。

openssh-serverをインストールすると、SSH経由で他のシステムにリモートログインすることもできることに注意してください。つまり、openssh-serverはopenssh-clientで構成されます。ただし、Linuxデスクトップを使用しているエンドユーザーの場合は、(ほとんどの場合)openssh-serverをインストールして、システムへのリモートログインを許可する必要はありません。

2つの違いがわかったので、次はそれらのインストール方法を確認します。

UbuntuまたはDebianにOpenSSHをインストールするには、sudo/root権限が必要であることに注意してください。そのような権限がない場合は、システム管理者に連絡してください。 sudoユーザーの作成に関するこの記事も読むことができます。

デスクトップまたはエンドユーザー向けのOpenSSHのインストール

SSH経由で他のリモートシステムに接続するだけの場合は、次のコマンドを使用してopenssh-clientパッケージをインストールする必要があります。

sudo apt update
sudo apt install openssh-client

システムにsshをインストールすると、それを使用できるようになります。 SSHの使用方法については、この詳細な記事を参照してください。

サーバー用のOpenSSHのインストール

Ubuntu / Debianサーバーをセットアップする場合は、openssh-serverパッケージをインストールして、他のリモートユーザーがシステムに接続できるようにする必要があります。

sudo apt update
sudo apt install openssh-server

openssh-serverをインストールしたら、それを微調整して必要に応じて構成する方法を学びましょう。

SSHデーモンsshdの制御(サーバー用)

sshdという名前のSSHデーモンがあります インストールされ、デフォルトで自動的に再起動時に開始できるようになっています。 systemctlは、SSHデーモンを制御するいくつかの方法の1つです。 systemctlについて詳しく知る 、この記事を参照してください。

sshdサービスを開始します

以下を発行するだけでサービスを開始できます:

sudo systemctl start sshd

sshdサービスを停止します

同様の方法でサービスを停止できます:

sudo systemctl stop sshd

sshdサービスを再開します

sshdサービスを停止して開始する場合(通常、構成をsshdサービスに変更する場合に必要)、次のコマンドを使用できます。

sudo systemctl restart sshd
起動するたびにUbuntuでSSHを自動的に有効にする

一部のサービスは、手動による操作を回避するため、および非常に頻繁に使用される場合は、再起動時に開始する必要があります。サーバー内のApache、mongod、mysqld、sshdなどのサービスには非常に重要です。

sshdでこのような自動起動を有効にする場合は、次を使用します。

sudo systemctl enable sshd
再起動時にSSH自動起動を無効にする

再起動時にsshdが自動的に開始されないようにする場合は、

を使用します。
sudo systemctl disable sshd

上記の4つのヒントは、ポートの変更など、sshサービスに変更を加えるたびに必要です。上記のコマンドを使用して、サービス名sshdをターゲットサービスに置き換えたサービス(mysqld、mongod、apacheなど)を管理できます。

ヒント :nohupコマンドを使用すると、SSH接続が切断された場合でもコマンドを実行し続けることができます。

SSHの構成(サーバー用)

現在のところ、sshサービスはポート22でリッスンしており、キーが保存されると、任意のユーザー(ルートも)を認証する準備が整います。

接続をリッスンするポートなどの構成を変更する場合は、ファイル「 / etc / ssh / sshd_config 」を編集できます。 」行を追加、削除、コメント、またはコメント解除してから、sshdサービスを再起動します。

構成するオプションはたくさんあります。必要になる可能性が最も高い構成のリストを作成しました。

1。デフォルトのSSHポートを変更する

通常、sshdサービスはTCPポート22でリッスンします。必要に応じて、/ etc / ssh / ssh_configに次の行を追加/編集することで、SSHポートを5678に変更できます。

Port 5678

サービスを再起動して、変更をすぐに確認してください。

2。 SSH経由のルートログインを無効にする

ルートユーザーにsshによる認証を許可することは、セキュリティ上の理由からお勧めできません。 sudo ユーザーはリモートでログインできますが、ルートにはログインできません ルートとして セキュリティフードチェーンのトップにいます。

ルートログインを無効にするには、次の行を追加して(まだ存在しない場合)、サービスを再起動します。

PermitRootLogin no

行がすでに存在する場合は、コメントアウトされていないことを確認してください。

3。 SSHキーベースの認証を許可する

エンドユーザーが常にパスワードを入力する必要がないように、sshキーベースの認証を許可することをお勧めします。リモートシステムにログインするには、[email protected]を使用するだけで十分です。

このためには、公開鍵認証を許可するようにSSHを構成する必要があります。

PubkeyAuthentication yes 

行がすでに存在する場合は、コメントアウトされていないことを確認してください。

ここで、特定のシステムが公開鍵を介してログインできるようにする場合は、エンドユーザーの公開鍵をファイル .ssh / authorized_keysに追加する必要があります。

ssh-keygen を使用して、sshキー(公開キーと秘密キー)を作成できます。 。 key-genの詳細については、このすばらしいリソースを参照してください。

エンドユーザーの公開鍵は、任意の方法でリモートサーバーに転送できます。必要に応じてscpコマンドを使用するか、FTP経由で取得することができます。本当にあなた次第です。

上記の3つが最も必要ですが、さらに変更する場合は、 sshd_configのマンページを参照してください。 。

結論

これは、Ubuntu / DebianでSSHを有効にする方法と、リモートログイン用にサーバーでSSHを構成する方法を知るのに十分な資料だと思います。

関連記事では、システム間で公開鍵をコピーすることによって発生するSSHエラーの詳細についてこの記事を参照できます。

この記事が役に立ったら、友達と共有してください。何か提案やコメントがある場合、または私が何かを見逃したと思う場合は、下にコメントをドロップしてください。


Linux
  1. Centos8へのphp7xのインストールと設定

  2. Ubuntu20.04へのPhpとNginxのインストールとセットアップ

  3. Linux –カスタムLinuxカーネルの構成、コンパイル、およびインストール?

  1. vsFTPDのインストールと構成

  2. Ubuntu 20.04 での SFTP のセットアップと SSH の防止

  3. CentOS / RHEL :ASMLib のインストールと構成

  1. Ubuntu18.04および19.10をインストールした後に行うこと

  2. Ubuntu14.04および16.04へのNginxのインストール

  3. Ubuntu15.04でのScientificSoftwareのインストールと構成。ケース:Scilab 5.5.1