Linux服务器SSH免密码登陆配置步骤

2星 需积分: 9 5 下载量 197 浏览量 更新于2024-09-18 收藏 20KB DOCX 举报
"本文将介绍如何通过SSH(Secure Shell)实现Linux服务器间的免密码登录,主要涉及SSH密钥对的生成及配置。" 在Linux环境中,SSH是一种安全的网络协议,用于远程登录和其他网络服务,它允许用户在不输入密码的情况下进行身份验证。这种免密码登录方式基于SSH密钥对,即公钥和私钥。以下是实现SSH免密码登录的详细步骤: 1. **创建`.ssh`目录** 在每个需要进行SSH登录的节点上,首先需要在用户的家目录下创建`.ssh`目录,这个目录存放SSH的相关配置和密钥文件。例如在Node1和Node2上执行: ``` node1</home/oracle>$ mkdir .ssh node1</home/oracle>$ chmod 700 .ssh node2</home/oracle>$ mkdir .ssh node2</home/oracle>$ chmod 700 .ssh ``` `chmod 700 .ssh`命令用于设置`.ssh`目录的权限为700,确保只有该用户有读、写和执行权限。 2. **生成密钥对** 使用`ssh-keygen`命令生成RSA或DSA类型的密钥对。RSA是常用的加密算法,而DSA则较旧但依然可用。在Node1上执行: ``` node1</home/oracle>$ ssh-keygen -t rsa node1</home/oracle>$ ssh-keygen -t dsa ``` 这些命令会生成两个密钥文件:`id_rsa`(私钥)和`id_rsa.pub`(公钥)或者`id_dsa`(私钥)和`id_dsa.pub`(公钥)。默认情况下,它们会被保存在`.ssh`目录下。 3. **复制公钥到远程主机** 使用`ssh-copy-id`命令将Node1的公钥复制到Node2,以便Node1可以无密码登录Node2。同样,也可以从Node2到Node1: ``` node1</home/oracle>$ ssh-copy-id -i ~/.ssh/id_rsa.pub oracle@node2 node2</home/oracle>$ ssh-copy-id -i ~/.ssh/id_rsa.pub oracle@node1 ``` 这里`oracle`是用户名,`node2`和`node1`分别是目标和源主机的IP地址或主机名。 4. **验证免密码登录** 完成上述步骤后,应该可以在不输入密码的情况下从一个节点SSH登录到另一个节点。例如从Node1登录到Node2: ``` node1</home/oracle>$ ssh oracle@node2 ``` 如果一切配置正确,现在你应该可以直接登录而无需输入密码。 注意,为了提高安全性,建议只在需要免密码登录的主机之间共享公钥,并且不要在生产环境中使用空密码。此外,定期更换密钥对也是良好的安全实践。如果需要撤销某台机器的访问权限,只需从其他机器的`.ssh/authorized_keys`文件中删除对应的公钥即可。