ssh-keygen
生成密钥对,再通过 ssh-copy-id
将公钥复制到远程服务器。
在服务器管理中,建立SSH信任关系是一项至关重要的任务,它不仅能够显著提升系统的安全性,还能极大地简化日常运维工作,以下是对服务器建立SSH信任关系的详细介绍:
1、生成密钥对:
在本地机器上打开终端,执行ssh-keygen -t rsa
命令来生成SSH密钥对,此命令会提示您选择密钥的保存路径和是否设置密码短语(可选),默认情况下,密钥对将保存在~/.ssh/id_rsa
(私钥)和~/.ssh/id_rsa.pub
(公钥)。
如果系统中已存在密钥对,可以选择覆盖或保留现有文件,建议为不同的用途生成不同的密钥对,以增强安全性。
2、复制公钥到目标服务器:
使用ssh-copy-id username@remote_host
命令将本地公钥复制到目标服务器的~/.ssh/authorized_keys
文件中,在此过程中,系统可能会要求输入目标服务器的密码以完成认证。
另一种方法是手动复制公钥,在本地机器上使用cat ~/.ssh/id_rsa.pub
命令查看公钥内容,然后通过SSH登录到目标服务器,将公钥内容追加到~/.ssh/authorized_keys
文件中。
3、配置目标服务器权限:
确保目标服务器上的~/.ssh
目录及其包含的文件具有正确的权限。~/.ssh
目录的权限应设置为700,authorized_keys
文件的权限应设置为600。
可以使用chmod 700 ~/.ssh
和chmod 600 ~/.ssh/authorized_keys
命令来设置这些权限。
4、测试SSH连接:
完成上述步骤后,尝试使用ssh username@remote_host
命令从本地机器连接到目标服务器,如果一切配置正确,应该能够无需密码直接登录到目标服务器。
5、处理常见问题:
无法连接:检查目标服务器的防火墙设置,确保允许SSH连接(通常是端口22),确认目标服务器上已安装并运行了SSH服务。
权限问题:确保本地私钥文件的权限设置为600,且仅拥有者可以读取,检查目标服务器上~/.ssh
目录和authorized_keys
文件的权限是否正确。
身份验证失败:确认已正确复制公钥到目标服务器的authorized_keys
文件中,并且没有多余的空格或换行符,检查本地私钥文件是否损坏或丢失。
通过遵循以上步骤和注意事项,可以在服务器之间成功建立SSH信任关系,实现无密码登录和安全传输文件等功能,这不仅提高了系统的安全性和管理效率,还简化了日常运维工作。