>  기사  >  컴퓨터 튜토리얼  >  Linux 시스템에서 SSH 키 인증을 설정하는 방법

Linux 시스템에서 SSH 키 인증을 설정하는 방법

王林
王林앞으로
2024-03-08 09:49:02614검색

SSH(Secure Shell)는 안전하지 않은 네트워크에서 네트워크 서비스를 안전하게 실행하기 위해 널리 사용되는 암호화된 네트워크 프로토콜입니다.

SSH는 암호화된 통신 및 인증 방법을 제공하여 데이터 전송을 더욱 안전하고 안정적으로 만듭니다.

SSH 키 인증은 보다 안전한 인증 방법이며 기존 비밀번호 인증보다 더 권장됩니다. 보안 측면에서 SSH 키 인증은 공개 키와 개인 키의 암호화 메커니즘을 기반으로 하기 때문에 더 높은 수준의 보호를 제공하여 비밀번호 크래킹 위험을 효과적으로 줄입니다.

비밀번호 인증은 전송 중에 비밀번호를 추측하거나 크래킹하거나 심지어 중간자 공격으로 위협할 수 있으므로 많은 경우 안전하지 않습니다. 이는 사용자의 신원과 데이터를 보다 효과적으로 보호하기 위해 보다 정교하고 다층적인 보안 조치를 채택하는 것이 중요하다는 점을 강조합니다.

키 인증은 공개 키와 개인 키를 조합하여 사용하므로 보안이 크게 향상됩니다.

사용자의 개인 키는 로컬에 저장되고 공개 키는 원격 서버에 저장됩니다. 이렇게 하면 공격자가 공개 키를 가로채더라도 개인 키를 역으로 추론하기 어렵기 때문에 보안이 강화됩니다. 이 방법은 보다 안정적인 인증 방법을 제공합니다.

Linux 시스템에서 SSH 키 인증을 설정하는 방법

SSH 키 쌍 생성

먼저 Linux 시스템에 OpenSSH 도구가 설치되어 있는지 확인하세요.

대부분의 Linux 배포판에는 일반적으로 이 도구가 사전 설치되어 있습니다. 시스템에 설치되어 있지 않은 경우 패키지 관리자를 통해 쉽게 설치할 수 있습니다.

apt를 사용하여 Debian/Ubuntu에 OpenSSH를 설치합니다.

으아악

Red Hat/CentOS에서 yum을 사용하여 OpenSSH 설치:

으아악

ssh-keygen

을 사용하여 키 쌍 생성

OpenSSH가 설치되면 ssh-keygen 명령을 사용하여 SSH 키 쌍을 생성할 수 있습니다.

명령의 기본 사용법은 다음과 같습니다.

으아악
  • -t rsa키 유형을 RSA로 지정하세요.
  • -b 4096보안을 강화하려면 키 길이를 4096비트로 지정하세요.
  • -C "your_email@example.com" 댓글을 추가하려면 일반적으로 이메일 주소를 사용하세요.

키 쌍을 생성한 후 기본 위치(~/.ssh/ 디렉터리 아래)에 저장하거나 다른 위치를 선택할 수 있습니다.

생성된 키 쌍에는 개인 키 파일(id_rsa)和公钥文件(id_rsa.pub)이라는 두 개의 파일이 포함되어 있습니다. 개인 키 파일은 로컬에 저장되는 반면, 공개 키 파일은 원격 서버에 복사되어야 합니다.

개인 키는 민감한 정보이므로 올바르게 보관해야 합니다. 공개키는 인증에 사용되는 공개정보입니다.

키 저장 및 관리

기본적으로 생성된 SSH 키 쌍은 사용자의 ~/.ssh/ 目录下。这个目录包含了两个主要文件:id_rsa(私钥)和 id_rsa.pub 디렉터리에 저장됩니다. 이 디렉터리에는 id_rsa(개인 키)와 id_rsa.pub(공개 키)라는 두 가지 주요 파일이 포함되어 있습니다. 이 설정은 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 파일을 엽니다.

nano ~/.ssh/authorized_keys

3、将剪贴板上的公钥内容粘贴到文件末尾,并保存文件。

4、回到本地机器,尝试使用密钥身份验证登录:

ssh username@your_server_ip

通过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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 mryunwei.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제