Linux システムで SSH キー認証を設定する方法

王林
リリース: 2024-03-08 09:49:02
転載
609 人が閲覧しました

SSH (Secure Shell) は、安全でないネットワーク上でネットワーク サービスを安全に実行するために広く使用されている暗号化されたネットワーク プロトコルです。

SSH は、暗号化された通信および認証方法を提供し、データ送信の安全性と信頼性を高めます。

SSH キー認証はより安全な認証方法であり、従来のパスワード認証よりも推奨されます。セキュリティの面では、SSH キー認証は公開キーと秘密キーの暗号化メカニズムに基づいているため、より高いレベルの保護を提供し、パスワードクラッキングのリスクを効果的に軽減します。

パスワードは送信中に推測されたり、解読されたり、中間者攻撃の脅威にさらされる可能性があるため、多くの場合、パスワード認証はあまり安全ではありません。これは、ユーザーのアイデンティティとデータをより効果的に保護するために、より高度で多層的なセキュリティ対策を採用することの重要性を強調しています。

キー認証は公開キーと秘密キーの組み合わせを使用するため、セキュリティが大幅に向上します。

ユーザーの秘密キーはローカルに保存され、公開キーはリモート サーバーに保存されます。この構成により、攻撃者が公開鍵を傍受したとしても、秘密鍵を逆に推定することが困難になるため、セキュリティが向上します。この方法は、より信頼性の高い認証方法を提供します。

Linux システムで SSH キー認証を設定する方法

SSH キー ペアの生成

まず、OpenSSH ツールが Linux システムにインストールされていることを確認する必要があります。

ほとんどの Linux ディストリビューションには通常、このツールがプリインストールされています。システムにインストールされていない場合は、パッケージ マネージャーを使用して簡単にインストールできます。

Debian/Ubuntu に apt を使用して OpenSSH をインストールします:

リーリー

yum を使用して OpenSSH を Red Hat/CentOS にインストールします:

リーリー

使用 ssh-keygen キーペアの生成

OpenSSH がインストールされたら、ssh-keygen コマンドを使用して SSH キー ペアを生成できます。

コマンドの基本的な使用方法は次のとおりです。

リーリー
  • -t rsa キーのタイプを RSA に指定します。
  • -b 4096 セキュリティを向上させるために、キーの長さを 4096 ビットに指定します。
  • -C "your_email@example.com" 通常は電子メール アドレスを使用してコメントを追加します。

キー ペアを生成した後、デフォルトの場所 (~/.ssh/ ディレクトリ) に保存するか、別の場所を選択するかを選択できます。

生成されたキー ペアには、秘密キー ファイル (id_rsa) と公開キー ファイル (id_rsa.pub) の 2 つのファイルが含まれます。秘密キー ファイルはローカルに保存されますが、公開キー ファイルはリモート サーバーにコピーする必要があります。

秘密キーは機密情報であるため、適切に保管する必要があります。公開鍵は、認証に使用される公開情報です。

鍵の保管と管理

デフォルトでは、生成された SSH キー ペアはユーザーの ~/.ssh/ ディレクトリに保存されます。このディレクトリには、id_rsa (秘密キー) と id_rsa.pub (公開キー) の 2 つのメイン ファイルが含まれています。この設定は、ユーザーが SSH を使用するときにキーを見つけて管理しやすくするためのものです。

ただし、セキュリティまたは組織上の理由から、キーを別の場所に保存したい場合があります。これは、キー ペアの生成時にストレージ パスを指定することで実現できます。

###例えば:### リーリー

これにより、秘密キーは

/path/to/your/keys/my_key

として保存され、公開キーは /path/to/your/keys/my_key.pub として保存されます。 SSH Key Agent は、SSH 秘密鍵を管理し、ログイン後に秘密鍵の復号化されたパスワードをキャッシュできるプログラムです。これにより、後続の SSH 操作でパスワードを再入力する必要がなくなります。

1. SSH エージェントを開始します:

リーリー

2. 秘密キーをエージェントに追加します:

リーリー

これにより、SSH でログインするたびに秘密鍵のパスワードを入力する必要がなくなり、利便性とセキュリティが向上します。

実際の使用では、さまざまなサーバーまたは目的に複数のキー ペアが存在する場合があります。

これらのキー ペアをより適切に管理するには、SSH 構成ファイルまたはキー ファイルのエイリアスを使用できます。

SSH サーバーの構成 ターゲットサーバーにログインします

SSH キー認証を使用してターゲット サーバーにログインする前に、SSH サービスがターゲット サーバーで有効になっていることを確認してください。ほとんどの Linux システムでは、SSH サービスがデフォルトで開始されます。

リーリー

username

を自分のユーザー名に置き換え、your_server_ip をターゲット サーバーの IP アドレスに置き換えてください。これにより、デフォルトのパスワード認証を使用してログインが試行されます。 公開キーを手動でインストールする

公開キーの手動インストールは、公開キーの内容をターゲット サーバー上の

~/.ssh/authorized_keys

ファイルに追加する基本的な方法です。 1. ローカル公開キーの内容をクリップボードにコピーします:

リーリー

2. ターゲット サーバーで、テキスト エディタを使用して

~/.ssh/authorized_keys

ファイルを開きます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">nano ~/.ssh/authorized_keys</pre><div class="contentsignin">ログイン後にコピー</div></div> <p>3、将剪贴板上的公钥内容粘贴到文件末尾,并保存文件。</p> <p>4、回到本地机器,尝试使用密钥身份验证登录:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">ssh username@your_server_ip</pre><div class="contentsignin">ログイン後にコピー</div></div> <h4>通过<code>ssh-copy-id简化公钥部署

ssh-copy-id 命令可以简化将本地公钥复制到远程服务器的过程。

这个命令会自动处理将公钥添加到目标服务器的 ~/.ssh/authorized_keys 文件中。

ssh-copy-id username@your_server_ip
ログイン後にコピー

确保替换 username 为你的用户名,your_server_ip 为目标服务器的 IP 地址。这个命令将提示你输入用户密码,然后将本地公钥复制到目标服务器上。

通过这两种方法,你可以在目标服务器上配置 SSH 密钥身份验证,提高登录的安全性和便利性。

SSH 配置文件详解

~/.ssh/config 文件的作用和结构

~/.ssh/config 文件是一个用于配置 SSH 客户端行为的配置文件。

它允许你为不同的主机设置自定义的配置选项,从而简化 SSH 连接的管理。

创建 ~/.ssh/config 文件:

touch ~/.ssh/config
ログイン後にコピー

编辑 ~/.ssh/config 文件:

nano ~/.ssh/config
ログイン後にコピー

使用别名、端口号等配置项简化SSH连接

配置文件中可以包含多个主机条目,每个条目定义了连接到远程主机的配置选项。

以下是一个简单的例子:

Host example
HostName your_server_ip
User username
Port 2222
IdentityFile ~/.ssh/id_rsa
ログイン後にコピー
  • Host:设置别名,用于代替实际的主机名。
  • HostName:远程主机的 IP 地址或域名。
  • User:连接时使用的用户名。
  • Port:SSH 连接的端口号。
  • IdentityFile:指定用于身份验证的私钥文件路径。

实际场景中的示例配置文件

以下是一个更为复杂的 ~/.ssh/config 文件,涵盖了多个主机和配置选项:

Host work
HostName work.example.com
User alice
Port 22
IdentityFile ~/.ssh/work_key

Host personal
HostName personal.example.org
User bob
Port 2222
IdentityFile ~/.ssh/personal_key

Host github
HostName github.com
User git
IdentityFile ~/.ssh/github_key
ログイン後にコピー

这样,你只需要使用别名就能够轻松连接到相应的主机,而不必记住每个主机的详细信息。

限制和加固SSH访问

禁用密码身份验证

禁用密码身份验证是提高 SSH 安全性的重要步骤之一。

这样,用户只能通过密钥身份验证进行访问,而不再依赖弱密码。

sshd_config中禁用密码身份验证:

1、打开 sshd_config 文件:

sudo nano /etc/ssh/sshd_config
ログイン後にコピー

2、找到并修改以下行:

PasswordAuthentication no
ログイン後にコピー

3、保存文件并重新启动 SSH 服务:

sudo service ssh restart
ログイン後にコピー

使用sshd_config文件设置访问限制

sshd_config 文件包含了用于配置 SSH 服务器的各种选项。

通过适当配置,你可以限制用户访问、定义允许登录的用户、设置登录时的认证方式等。

一些常用的 sshd_config 选项:
  • AllowUsers:指定允许登录的用户列表。
  • DenyUsers:指定禁止登录的用户列表。
  • AllowGroups:指定允许登录的用户组列表。
  • DenyGroups:指定禁止登录的用户组列表。
  • PermitRootLogin:禁用或限制 root 用户的远程登录。
示例:
AllowUsers alice bob
DenyUsers mallory
AllowGroups sshusers
DenyGroups badusers
PermitRootLogin no
ログイン後にコピー

以上がLinux システムで SSH キー認証を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:mryunwei.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート