リモートホストに接続するために頻繁にSSHを使用している場合、SSHサーバーを安全にする方法の1つは、公開/非公開のSSHキーを使用して、ネットワーク上でパスワードが送信されないようにすることです。これはブルートフォース攻撃も防ぐことができます。

Linuxでは、公開/非公開のSSH鍵を作るのは簡単です。

  1. ターミナルを開きます。タイプします。
ssh-keygen -t rsa

また、DSA (Digital Signing Algorithm) 技術を使用して公開鍵/秘密鍵を作成することも可能です。

ssh-keygen -t dsa

:DSAとRSAの安全性については、多くの議論がなされています。私見ですが、よほどこだわりがあり、2つの技術の技術的な詳細を掘り下げるのが好きでない限り、どちらを選んでも問題ないと思います。どちらも問題なく使えるでしょう。

    1. 次の画面で、鍵を保存する場所を尋ねるプロンプトが表示されるはずです。デフォルトの保存場所は、ホームディレクトリの .ssh フォルダです。Enter`を押して、デフォルトの設定を受け入れます。

2.次の画面で、鍵の保存場所を尋ねるプロンプトが表示されます。 3. リモートホストに接続するためのパスフレーズではなく、秘密鍵を解除するためのパスフレー ズを入力するよう促されますので、あなたの秘密鍵を手に入れたとしても、誰もリモートサーバーに アクセスできないようにします。パスフレーズは任意です。空白にする場合は、Enterを押してください。

をクリックします。 4. これで公開鍵と秘密鍵が生成されたはずです。ファイルマネージャーを開き、.ssh ディレクトリに移動します。id_rsaとid_rsa.pubの2つのファイルが表示されるはずです。

5. 5. 以下のコマンドを実行して、新しい SSH 公開鍵をリモートホストにアップロードします。

ssh-copy-id username@remote-host-ip-address

  1. リモートホストにログインし、SSH設定ファイルを編集します。

ssh ユーザー名@リモートホスト-IPアドレス
sudo nano /etc/ssh/sshd_config

設定ファイルをスクロールダウンして、以下の属性が正しく設定されていることを確認します。

RSAAuthentication yes
PubkeyAuthentication yes 
パスワード認証 no

Ctrl+O でファイルを書き込んで保存し、Ctrl+X` でファイルを閉じます。

7. リモートホストのSSHサーバーを再起動します。

sudo systemctl restart ssh

これで完了です。これで、以下のコマンドでリモートホストに接続できるようになりました。

ssh ユーザー名@リモートホストのIPアドレス

よくある質問

SSH鍵をリモートサーバーにコピーしたら、“Permission Denied “というエラーが発生しました。

この問題は、リモートホストの “.ssh” フォルダの問題である可能性が高いです。デフォルトでは、SSH デーモンは、その設定フォルダと “authorized_keys” ファイルに正しいパーミッション・ビットがない場合、すべての着信接続を拒否します。

ファイルやフォルダのパーミッションを変更するには、リモートマシンのローカルコンソールにアクセスし、あなたの「/home」ディレクトリに移動して実行します。chmod 700 /home/$USER/.ssh && chmod 600 /home/$USER/.ssh/authorized_keys. 最後に、新しい設定を適用するためにデーモンを再起動します。sudo systemctl restart ssh.

同じリモートサーバに複数のSSH鍵を作成できますか?

はい!ただし、ssh-keygen -f /home/$USER/.ssh/filename を実行して、マシン内の各SSH鍵が一意のファイル名であることを確認する必要があります。

それはさておき、ssh -i /home/$USER/.ssh/filename username@remote.host.ip.address を実行して、リモートホストにログインするために使用するキーを指定することを確認します。

新しいSSH鍵を古い鍵のあるリモートホストにインポートすることは可能ですか?

はい、可能です。まず、新しい鍵を SSH 認証エージェントにインポートします: ssh-add です。次に、古いマシンにログインし、同じ認証エージェントにその鍵をインポートします: ssh -A old.machine.ip.address && ssh-add -c.

最後に、Ctrl + D を押して古いマシンを離れ、新しい鍵と古い鍵の両方でリモートホストに接続します。

画像引用: Unsplash. すべての変更とスクリーンショットはRamces Redによるものです。

Akira
Akiraは情熱的なゲーマーであり、製品レビュアーです。ゲームをしていないときは、最新のゲーミングアクセサリーを試したり、製品のレビューをしていることが多い。彼の分かりやすいスタイルは、ゲーマーが自分のニーズに最も適した製品を簡単に判断できるようにするものです。また、技術的な問題にも精通しており、その解決方法も知っている。