ブログに戻る

UbuntuでSSHを使用してリモートサーバーに接続する方法

UbuntuでSSHを使用してリモートサーバーに接続する方法

SSHとは何ですか?

SSHとはSecure Shell(セキュアシェル)の略です。接続が暗号化されるため、SSHを使用すると安全な方法でリモートマシンにアクセスできます。Linuxターミナルからsshコマンドを使用することで、リモートのLinuxサーバーに接続し、自分のコンピュータであるかのように作業することができます。このチュートリアルの最後には、次の環境でリモートサーバーに接続するためのSSHの使用方法を完全に理解しているはずです:Ubuntu.

構文

構文は、sshコマンドを使用する方法のルールです。構文を並べ替えることはできますが、直接的な形式に従う必要があります。以下は、sshコマンドを使用するための構文の例です。

接続先となるドメイン名またはIPアドレスが、上記のコマンドに示されているremote_hostです。この構文は、リモートシステムとローカルシステム上のユーザー名が同じであることを前提としています。ただし、ユーザー名が異なる場合は、次のコマンドで指定できます。

サーバーに接続すると、すぐにパスワードを入力して本人確認を行う必要があります。ローカルセッションに戻るには、exitコマンドを入力します。

SSHの設定方法

Ubuntuにおけるメインのsshd設定ファイルは /etc/ssh/sshd_config にあります。SSH設定を変更すると、SSHDサーバーの設定が自動的に変更されます。設定を行う前に、次のコマンドを使用して現在のバージョンのファイルを必ずバックアップしてください。

テキストエディタを使用して開きます。

このファイル内のほとんどのパラメータはそのままにしておく必要があります。ただし、注意すべき点がいくつかあります。

ポート宣言は、SSHDサーバーが接続を待機するポートを示します。デフォルトは22です。特別な理由がない限り、この設定を変更する必要はありません。

ホストキー宣言は、グローバルホストキーが配置されている場所を示します。

出力すべきログのレベルは、これら2つの項目で示されます。SSHの使用に問題がある場合、問題を特定する優れた方法は、ログのレベルを上げることです。

これらのオプションは、設定ファイルが安全でない場合に不正なログインを防ぐための、ログインに関する情報を定義します。

これらのパラメータ設定は、X11フォワーディング機能と呼ばれます。これにより、リモートシステムのGUIをローカルシステムに表示できます。SSHクライアントに -X オプションを付けて接続する際は、サーバー側でこのオプションを有効にする必要があります。

変更を加えた後、ファイルを保存し、CTRL-X、Yの順に押してからEnterキーを押して閉じます。/etc/ssh/sshd_configの設定を変更した場合は、変更を適用するためにsshdサーバーを再起動する必要があります。

Ubuntu 16.04やDebian Jessieなどのsystemdシステムでは、次のコマンドを使用します。

すべてが完全に動作していることを確認するために、変更を徹底的にテストしてください。変更を加える場合は、いくつかのセッションをアクティブなままにしておくことをお勧めします。そうすれば、必要に応じて設定を元に戻すことができます。

鍵を使用してSSHにログインするにはどうすればよいですか?パスワードを使用してリモートシステムにログインするのもよいですが、鍵ベースの認証を設定するのが最善です。

鍵ベースの認証とは何ですか?

鍵ベースの認証では、秘密鍵と公開鍵と呼ばれる2つの鍵のペアが作成されます。秘密鍵はユーザーのコンピューターにあり、保護され秘密に保たれています。公開鍵は誰にでも公開でき、アクセスしたい任意のサーバーに保存できます。鍵ペアを使用して接続しようとすると、サーバーは公開鍵を使用してユーザーのコンピューター向けのメッセージを生成します。ユーザーは秘密鍵を使用することでのみ、そのメッセージを読み取ることができます。その後、ユーザーのコンピューターはサーバーに応答を返し、サーバーはユーザーが本物であることを認識します。鍵を設定すると、プロセス全体がバックグラウンドで自動的に完了します。

SSH鍵の作成方法

SSH鍵は、ログイン元のコンピューターで生成する必要があります。これは通常、ローカルコンピューターです。コマンドラインに以下を入力します。

次に、ENTERキーを押してデフォルト値を受け入れます。これにより、~/.ssh/id_rsa.pub および ~/.ssh/id_rsa に鍵が生成されます。次に、以下のコマンドを入力して .ssh ディレクトリに移動します。

これらはファイルの権限です:

list files in .ssh folder

ご覧の通り、所有者のみが id_rsa ファイルの読み取りと書き込みを行えます。したがって、安全に保管する必要があります。ただし、id_rsa.pub ファイルは共有することができ、この操作に適した権限を持っています。次のステップは、以下の構文を使用して公開鍵をサーバーに転送することです。

これによりSSHセッションが開始され、認証のためにパスワードを使用する必要があります。パスワードを入力すると、公開鍵がサーバー’sの認証済み鍵ファイルにコピーされ、次回からはパスワードなしでログインできるようになります。

パスワード認証を無効にする方法

SSH鍵が生成されている場合、パスワードのみの認証を無効にすることでサーバーのセキュリティを向上させることができます。コンソールを使用する代わりに、サーバーにインストールされた公開鍵とペアになる秘密鍵を使用してサーバーにログインできます。

注意:この手順に進む前に、必ず公開鍵をサーバーにインストールしてください。そうしないと、アクセスできなくなります!

次のコマンドを使用してsshd設定ファイルを開きます:

先頭の # を削除して、PasswordAuthentication の行を見つけてコメントアウトを解除します。その後、値を “no” に変更できます:

PubkeyAuthentication と ChallengeResponseAuthentication はデフォルトで設定されており、次のようになっているはずです:

これら2つの設定は変更しないでください。変更を加えた後、ファイルを保存して閉じます。次に、以下のコマンドを使用してSSHデーモンを再起動します:

これでパスワード認証が無効になり、サーバーにはSSH鍵認証を使用してのみアクセスできるようになります。

まとめ

このチュートリアルでは、UbuntuでSSHを使用してリモートサーバーに安全に接続する方法を説明しました。システム管理者にとってSSHの使用方法を学ぶことは基本であるため、このチュートリアルをマスターした後は、SSHのより高度な機能に進むことができます。

ハッピーコンピューティング!

 

author

Akshay Nagpal

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。