MacでSSH-Keygenを使用してSSHキーを生成する方法
厳格なオンラインセキュリティは私たちの多くにとって必須となっており、悪意のあるオペレーターが賢くなるにつれて、ツールと保護はそれに追いつくために強化されなければなりません。Secure Shell(SSH)は、公開鍵と秘密鍵をペアにしてデータを安全に送信できるようにする暗号化プロトコルです。
SSHキーを使用してリモートUbuntuサーバーへの安全なパスワードなしのログインをセットアップします
SSHは、クライアントコンピューターがリモートサーバーに接続して通信するのに役立つ安全なクライアントサーバーネットワークプロトコルです。SSH接続により、端末に入力されたコマンドが暗号化されたチャネルを介してリモートサーバーに送信されます。
リモートサーバーへの接続に使用される認証メカニズムには、パスワードベースの認証(ブルートフォース攻撃を受けやすい)とSSHキーベースの認証(非常に安全)の2種類があります。
SSHキーベースの認証では、公開キーおよび秘密キーと呼ばれるキーペアがクライアントコンピューター上に生成されます。この公開鍵のコピーは、リモートサーバーで利用できるようになります。クライアントがサーバーに接続要求を送信すると、サーバーはランダムな文字列を生成し、公開鍵を使用して暗号化します。この文字列は、クライアントコンピューターで使用可能な秘密鍵を使用してのみ復号化できます。この方法により、秘密鍵を含むクライアントのみがサーバーにアクセスできるようになります。
このガイドでは、Ubuntu 20.04LTSサーバーでSSHキーを設定する方法を説明します。
コンピューターに既存のSSHキーがあるかどうかを確認します
SSHキーペアがコンピュータにすでに存在するかどうかを確認するには、ターミナルでこのコマンドを入力します。
ls -l ~/.ssh/id_*.pub
上記のコマンドがno such file or directory
またはを返す場合は、no matches found
SSHキーペアが存在しないことを意味します。
既存のSSHキーペアがある場合は、同じキーペアを使用して2つのリモートサーバーにアクセスするか、異なる名前の別のキーペアを作成することもできます。次のステップに進み、両方の場合のSSHキーを生成する方法を見てみましょう。
クライアントコンピューターでのSSHキーの作成
コンピューターで新しいSSHキーペアを生成するには、次のようにコマンドを入力します。
ssh-keygen
デフォルトでは、SSHキーは2048ビットです。セキュリティを強化するために、より高いビットでSSHキーを生成する場合は、次のコマンドを使用します。
ssh-keygen -b 4096
コマンドが正常に実行されると、次のメッセージが画面に表示されます。
公開/秘密rsaキーペアを生成します。 キーを保存するファイルを入力します(/home/harshit/.ssh/id_rsa):
コンピュータに既存のSSHキーペアEnter
がない場合は、を押すだけですが、既存のSSHキーがある場合は、以下に示すように、別のファイル名でキーを保存します。
キーを保存するファイルを入力します(/home/your_name/.ssh/id_rsa):/home/your_name/.ssh/id_rsa_xxx
xxx
以下に示すように、ファイル名の末尾にあるを適切な名前に置き換えて、を押しEnter
ます。
キーを保存するファイル(/home/your_name/.ssh/id_rsa)を入力します:/home/your_name/.ssh/id_rsa_client_1
次のプロンプトでは、任意の長さのパスフレーズを入力するように求められます。これにより、デバイスで2レベルのセキュリティが確保されます。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
このパスフレーズを入力すると、その人があなたの秘密鍵にアクセスできたとしても、このパスフレーズがないとリモートサーバーにアクセスできなくなります。
プロセス全体が完了すると、次のメッセージが画面に表示されます。
SSHキーがシステムで生成されました。次に、リモートサーバーに公開鍵をコピーします。
公開鍵をリモートUbuntuサーバーにコピーする
公開鍵をリモートサーバーにコピーする最も簡単で迅速な方法は、ssh-copy-id
ユーティリティを使用することです。ただし、何らかの理由でこのユーティリティがマシンで使用できない場合は、このセクションで提供されている他の方法を使用することもできます。
ssh-copy-idユーティリティの使用
このssh-copy-id
ユーティリティは、デフォルトでUbuntuマシンで使用でき、デバイスからリモートUbuntuマシンの適切なディレクトリに公開鍵をコピーします。
公開sshキーをコピーするには、以下に示すように、ターミナルでコマンドを入力するだけです。
ssh-copy-id [email protected]
交換するusername
とhostname
、サーバーのユーザー名とホスト名で上記のコマンドインチ
初めてホストに接続する場合は、次のメッセージが端末に表示されます。入力してyes
、を押しEnter
ます。
ホスト「172.105.XX.XX(172.105.XX.XX)」の信頼性を確立できません。 ECDSAキーのフィンガープリントはxx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xxです。 接続を続行してもよろしいですか(はい/いいえ)?はい
これで、ssh-copy-id
ユーティリティはid_rsa.pub
公開SSHキーを含む名前のファイルをスキャンします。スキャンプロセスが完了すると、以下に示すように、リモートサーバーのパスワードを入力するように求められます。パスワードを入力して、を押しますEnter
。
/ usr / bin / ssh-copy-id:情報:新しいキーでログインしようとしています。すでにインストールされているキーを除外します。 / usr / bin / ssh-copy-id:情報:1つのキーがまだインストールされていません-プロンプトが表示されたら、新しいキーをインストールします [メール保護]のパスワード:
キーが追加されると、次のメッセージが出力として端末に表示されます。
追加されたキーの数:1 次に、「ssh ' [電子メールで保護] '」を使用してマシンにログインし、必要なキーのみが追加されていることを確認します。
クライアントコンピューターに複数のSSHキーがある場合は、適切な公開キーをリモートコンピューターにコピーするには、以下に示すパターンでコマンドを入力します。
ssh-copy-id -i id_rsa_xxx.pub [email protected]
💡ヒント
ターミナルに入力するときは、ファイル名の最後に.pubを付けることを忘れないでください。
配管方式による公開鍵のコピー
ssh-copy-id
ユーティリティが利用できない場合は、ターミナルで次のコマンドを入力します。このコマンドは少し長く見えるかもしれませんが、適切に機能します。
cat ~/.ssh/id_rsa.pub | ssh [email protected]_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
交換するremote_username
とserver_ip_address
ユーザー名とIPアドレスを持ちます。
コンピューターで複数のSSHキーを使用できる場合id_rsa.pub
は、を選択した公開SSHキーファイルに置き換えます。たとえば、id_rsa_client_1.pub
。
プロンプトが表示されたらリモートユーザーのパスワードを入力し、を押しますEnter
。
[email protected]'s password:
パスワードを入力すると、id_rsa.pub
ファイルがauthorized_keys
リモートサーバーのファイルにコピーされます。
公開鍵を手動でコピーする
パスワード認証を介してリモートシステムにアクセスできない場合は、この方法を使用してください。
ターミナルでコマンドid_rsa.pub
を使用してファイルを開きますcat
。テキストエディタから開くこともできます。目的はファイルの内容をコピーすることだけです。
cat ~/.ssh/id_rsa.pub
ファイルの内容は次のようになります。
SSH-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6Hy / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH [Eメール保護] _PC
次に、リモートサーバーにログインし、以下に示すコマンドを使用して、コピーしたコンテンツを貼り付けます。をabove_string
コピーしたコンテンツに置き換えます。
echo above_string >> ~/.ssh/authorized_keys
複数のSSHキーの構成(オプション)
この手順は、クライアントコンピューターに複数のSSHキーを設定しているユーザーを対象としています。SSHキーの設定が1つしかない場合は、このセクションをスキップしてください。
複数のSSHキーを管理するために、次に示すコマンドを使用してconfig
、.ssh
ディレクトリ内にファイルを作成します。
cd ~/.ssh
vim config
入力i
次の例に示すように、コマンドモードに入り、複数のホストの詳細を入力します。
Host remote-ubuntu-server
HostName 172.105.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_1
Host remote-ubuntu-server
HostName 172.106.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_2
同様に、他のリモートサーバーとそのキーの詳細を入力します。プロセスが完了したら、Esc
と:wq
を押して保存して終了します。
これで、後続のプロセスは、クライアントコンピューターに単一または複数のSSHキーがある場合でも同じになります。
SSHキーを使用してリモートサーバーにログインします
公開鍵のコピープロセスが完了したら、以下に示すようにコマンドを入力してリモートサーバーにログインします。
ssh [email protected]_ip_address
キーペアの生成中にパスフレーズを指定した場合は、パスフレーズを入力するように求められます。認証プロセスが完了すると、新しいセッションが開きます。
これで、リモートサーバーでSSHキーベースの認証が正常に構成されました。ただし、パスワードベースの認証はサーバー上で引き続きアクティブです。これは、リモートサーバーがブルートフォース攻撃を受けやすいことを意味します。
そこで、リモートサーバーからパスワードベースのログインメカニズムを完全に無効にします。
パスワードベースのログインメカニズムを無効にする
変更を加える前に、リモートアカウントのrootユーザーまたはsudo対応ユーザーがSSHキーベースの認証システムを使用してサーバーにアクセスできることを確認してください。この手順では、パスワードベースのログインを完全にロックまたは無効にするため、少なくとも1人のユーザーroot権限がSSHキーを介してサーバーにアクセスできることが重要です。
リモートUbuntuサーバーにログインし、以下に示すコマンドを入力します。
sudo vim /etc/ssh/sshd_config
Esc
、/
「PasswordAuthentication」と入力してを押しenter
ます。 i
、「PasswordAuthenticationyes」の値を「PasswordAuthenticationno」に変更します。Esc
上記のプロセスを押して繰り返し、「ChallengeResponseAuthentication」、「UsePAM」を見つけ、それらの値もに変更しますno
。PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
すべての値は次のように設定されるとno
、プレスEsc
、種類:wq
とヒットenter
。
すべての変更をアクティブにするには、ssh
以下のコマンドを使用してサービスを再起動します。
sudo systemctl restart ssh
次に、コンピュータで新しいターミナルウィンドウを開き、SSHキー認証が正しく機能していることを確認してから、現在のセッションを閉じます。
検証プロセスが完了したら、実行中のすべてのセッションを閉じます。
これで、Ubuntu20.04サーバーでSSHキーベースの認証が正常に構成されました。これで、パスワードベースのログインメカニズムを使用してサーバーにログインすることはできなくなりました。
厳格なオンラインセキュリティは私たちの多くにとって必須となっており、悪意のあるオペレーターが賢くなるにつれて、ツールと保護はそれに追いつくために強化されなければなりません。Secure Shell(SSH)は、公開鍵と秘密鍵をペアにしてデータを安全に送信できるようにする暗号化プロトコルです。
どこからでもUbuntuマシンに安全にアクセスできます
多くの新しい更新されたテーマは、Ubuntu20.04の新しいGNOMEデスクトップにインストールする準備ができています。ここに2020年の最高のubuntuテーマのリストがあります
Ubuntuでは、デフォルトで、Windowsの代わりにアプリケーションを切り替えることができます。これを元に戻し、UbuntuのAlt-Tabでタブのグループ化を解除する方法は次のとおりです。
Gno-Menu、Extended Gesturesなどの人気のある拡張機能の多くは、Ubuntu20.04では機能しません。したがって、ここに最も効果的なGNOME拡張機能のリストがあります
アプリを使用してUbuntuのネイティブ壁紙をスライドショーすることはいつでもできますが、壁紙を動的にダウンロードして設定するためのアプリをいくつか紹介します。
Ubuntuのルートスーパーユーザーの違いは何ですか?さて、ここでカバーしてもらいます。
このビデオでは、完全なガイド付きのubuntu12.04システム用のTeamViewer8をインストールして使用します。しかし、これはウィンドウでも同じように機能します。
すべての綿毛を除いて、ここにあなたが素晴らしいビデオを作成するために使うことができるUbuntuのための最高の無料のビデオエディタのリストがあります。
Linuxのハウツーガイドでは、ターミナルで特定の操作を実行することを期待していることがよくありますが、これは最初は恐ろしいように思えます。しかし、心配する必要はありません。このLinuxコマンドのチートシートでは、ターミナルを開いていくつかの便利なコマンドを発行するプロセスについて説明します。
Arch Linuxにパッケージをインストールしたいのですが、方法がわかりませんか?多くの人は、DebianベースのディストリビューションからArchに最初に移行するときにこの問題に直面します。ただし、パッケージマネージャーを使用して、Archベースのシステムでパッケージを簡単に管理できます。
FTP、ピアツーピアファイル転送、Wi-Fi転送などのメカニズムを使用すると、AndroidとUbuntuの間でファイルを頻繁に共有する場合に時間を節約できます。