Linux系统SSH免密认证的完整操作指南

原创
ithorizon 7个月前 (10-03) 阅读数 43 #Linux

Linux系统SSH免密认证的完整操作指南

SSH(Secure Shell)是一种网络协议,用于计算机之间的保险通信和数据传输。在Linux系统中,SSH免密认证是一种非常方便的登录对策,可以避免每次登录时都需要输入密码的繁琐过程。下面将详细介绍怎样在Linux系统中配置SSH免密认证的完整操作步骤。

一、准备工作

1. 确保你的Linux系统中已经安装了SSH服务。大多数Linux发行版默认都安装了SSH服务,如果没有安装,可以使用以下命令进行安装:

sudo apt-get install openssh-server

对于基于Red Hat的Linux发行版,可以使用以下命令:

sudo yum install openssh-server

2. 生成一对SSH密钥对。如果你还没有生成密钥对,可以使用以下命令:

ssh-keygen -t rsa -b 2048

这个命令会生成一个2048位的RSA密钥对,并询问你保存密钥的位置以及是否需要设置密码。如果不设置密码,那么登录时就不需要输入密码。

二、配置SSH免密认证

1. 将生成的公钥(通常是~/.ssh/id_rsa.pub)复制到目标服务器的~/.ssh/authorized_keys文件中。可以使用以下命令:

ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@目标服务器IP

如果目标服务器有密码保护,则需要输入密码。

2. 修改目标服务器的~/.ssh目录的权限,确保只有当前用户可以访问:

sudo chmod 700 ~/.ssh

3. 修改目标服务器的~/.ssh/authorized_keys文件的权限,确保只有当前用户可以读写:

sudo chmod 600 ~/.ssh/authorized_keys

4. (可选)如果需要,可以设置.ssh目录和authorized_keys文件的属主为root,以便其他用户也可以使用SSH免密登录:

sudo chown root:root ~/.ssh ~/.ssh/authorized_keys

三、测试SSH免密认证

1. 在本地机器上打开终端,使用以下命令尝试SSH登录到目标服务器:

ssh 用户名@目标服务器IP

如果一切配置正确,你应该可以直接登录到目标服务器,而无需输入密码。

2. 如果出现以下不正确信息:

Permission denied (publickey,gssapi-with-mic)

则也许是出于公钥没有被正确添加到目标服务器的authorized_keys文件中。请检查文件内容,确保公钥已经被正确添加。

四、注意事项

1. 为了保险起见,不要在公钥中设置密码。如果公钥被泄露,那么攻击者就可以使用公钥登录到你的服务器。

2. 定期更换SSH密钥对,以防止密钥被泄露。

3. 如果你需要从多个机器登录到目标服务器,可以将公钥复制到所有机器的~/.ssh目录中,并将目标服务器的IP地址添加到.ssh/known_hosts文件中。

通过以上步骤,你就可以在Linux系统中配置SSH免密认证,从而实现方便快捷的远程登录。愿望这篇指南对你有所帮助。

本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Linux


热门