LinuxにおけるSSHの設定と使用方法

Linuxをしばらく使っている場合は、SSHというツールについて耳にしたことがあるでしょう。SSH(Secure Shell)は、クライアントとリモートサーバー間で安全な接続を確立するためのネットワークプロトコルです。これは、ユーザーがネットワーク越しにさまざまなコンピュータに安全にリモートログインできるように設計されています。ここでは、SSHキーをサーバーに簡単に設定してコピーする方法を紹介します。
関連情報: LinuxでのすべてのアクティブなSSH接続を表示する方法
SSHのインストール
最初にSSHサーバーをインストールする必要があります。Software Centerやパッケージマネージャでopenssh-serverパッケージを見つけてインストールできます。あるいは、サーバー上にいる場合(またはターミナルを使用するのが好きな場合)は、ターミナルを開いて以下のコマンドを入力します。
# Ubuntu/Debian
sudo apt install openssh-server
# Fedora/CentOS/REHL
sudo dnf install openssh-server
関連情報: Linuxサーバーでハッカーを捕まえるためのSSHハニーポットの作成方法
LinuxでのSSHの有効化
OpenSSHサーバーがマシンにインストールされたら、systemdユニットを起動して有効にする必要があります。そのためには、ターミナルに以下のコマンドを入力するだけで済みます。
sudo systemctl enable --now ssh
知っておくべきこと: LinuxではSSHパイプを使用してプログラムを接続できます。
SSHキーの生成
opensshサーバーをインストールしたら、SSHキーのペアを生成できます。進む前に、既存のキー ペアがないことを確認してください。このプロセスは既存のものを上書きします。
既存のキー ペアがあるかどうかを確認するには、次のコマンドを使用します。
ls -la ~/.ssh既存のキー ペアがある場合、上記のコマンドは「id_rsa」と「id_rsa.pub」ファイルを表示するはずです。

既存のSSHキー ペアがないことを確認したら、新しいものを生成できます。そうでない場合、古いキーをバックアップしておき、失うのを避けましょう。
新しいキーを生成するには、次のコマンドを使用します。
ssh-keygen -t rsa -b 4096上記のコマンドは、ssh-keygenユーティリティを呼び出して、インタラクティブにSSHキー ペアを生成します。-tオプションを使用して、生成するキーのタイプを指定します。この場合、RSAキーを生成します。
また、-bオプションを使用して、キーのビット数を指定します。RSAキーを使用する場合、最小ビットサイズは1024です。指定されていない場合、3072ビットでキーが生成されます。

SSHキーの保存にはデフォルトの場所を使用すると、SSH接続時にパスを入力しなくて済むので便利です。
キーをパスフレーズで暗号化したくない場合は、Enterを押してスキップしてください。
リモートサーバーへのキーのコピー
新しいSSHキー ペアを生成したので、管理したいリモートマシンにアップロードする必要があります。
これを行う最も効率的な方法は、ssh-copy-idコマンドを使用することです。このコマンドを次のように入力します。
ssh-copy-id remote_user@remote_IP別のファイル名でキー ファイルを使用している場合、以下のコマンドを使用してキー ファイルへのパスを指定できます。
ssh-copy-id -i ~/.ssh/id_rsa remote_user@remote_IPリモートマシンに初めてログインする場合は、フィンガープリントを受け入れる必要があります。
次に、リモートユーザーのSSHパスワードを入力します。
認証が成功すると、ssh-copy-idコマンドはサーバー上の「~/.ssh/authorized_keys」ファイルにid_rsa.pubキーの内容を追加し、接続を閉じます。

リモートマシンへのログイン
すべてのステップを正常に完了したら、パスワードを入力せずにリモートサーバーにログインできます。
これをテストするには、次のコマンドを使用します。
ssh remote_user@remote_ipキーにパスフレーズが設定されていない限り、自動的にログインされます。
よくある質問
1. SSHは安全ですか?
SSHは、認証されたユーザーがリモートシステムにログインすることを許可する強力なセキュリティツールです。ただし、設定ファイルの許可がある限り、その安全性は保証されます。未設定または誤設定されたSSHサーバーは、ハッカーや第三者のアクセスに脆弱となる可能性があります。インストール後は、SSHの設定を確実に保護してください。
2. SSHのauthorized_keysファイルはどこにありますか?
SSHのauthorized_keysファイルは、各ユーザーの公開キーファイルを保持し、どのユーザーがサーバーにログインできるかを指定します。Linuxでは、authorized_keysファイルは通常、ユーザーのホームディレクトリ内の「.ssh」フォルダーにあります。
3. ssh-copy-idのパーミッション拒否の問題をどのように修正できますか?
これは、すでにリモートサーバーに公開キーを設定し、パスワード認証を無効にしている場合にのみ発生します。この問題を修正するには、最初にサーバーにログインし、/etc/ssh/sshd_configファイルでパスワード認証を有効にしてから、再度ssh-copy-idコマンドを実行します。
新しいキー ファイルをコピーした後は、再度パスワード認証オプションを無効にすることを忘れないでください。