CentOS集群中设置SSH无密码互访及解决scp命令缺失问题

需积分: 10 4 下载量 131 浏览量 更新于2024-09-11 收藏 20KB DOCX 举报
"在Linux服务器Centos集群环境中,设置SSH无密码登录是常见的管理操作,可以简化运维工作,提高效率。本文将介绍如何在Centos系统中实现SSH无密码相互访问,以及解决`bash scp command not found`的问题。" 在Centos集群中,通过SSH无密码访问可以避免频繁输入密码,方便进行文件传输和远程操作。以下是实现这个目标的步骤: 1. **安装SSH服务和客户端** 首先,你需要确保所有服务器都安装了SSH服务和客户端。在Centos中,可以使用`yum`命令来安装: - 对于SSH服务器端,执行 `yum install -y openssh-server.x86_64`。 - 如果在尝试使用`scp`命令时出现"bash scp command not found"的错误,表示未安装SSH客户端,需要运行 `yum install -y openssh-clients.x86_64`。 2. **生成RSA密钥对** RSA密钥对是SSH无密码登录的基础。在每个服务器上,使用`ssh-keygen`命令生成一对公钥和私钥。默认情况下,私钥保存在`~/.ssh/id_rsa`,公钥保存在`~/.ssh/id_rsa.pub`: ``` [hadoop@master~]$ ssh-keygen -t rsa (一直按Enter键) ``` 3. **配置公钥认证** 要实现无密码访问,你需要将服务器A(例如,`master`)的公钥(`id_rsa.pub`)复制到服务器B的`.ssh/authorized_keys`文件中。这可以通过`scp`命令完成: ``` [hadoop@master.ssh]$ scp ~/.ssh/id_rsa.pub hadoop@serverB:~/.ssh/authorized_keys ``` 注意,首次连接到新服务器可能需要确认主机指纹。 4. **权限设置** 为了确保安全,需要正确设置`.ssh`目录和`authorized_keys`文件的权限。通常,`.ssh`目录的权限应该是`700`,`authorized_keys`文件的权限应为`644`: ``` chmod 700 ~/.ssh chmod 644 ~/.ssh/authorized_keys ``` 5. **测试无密码登录** 完成上述步骤后,你应该可以在无需密码的情况下从服务器A登录到服务器B: ``` ssh hadoop@serverB ``` 如果一切正常,你应该能够直接登录,而不需要输入密码。 6. **集群中的应用** 在集群环境中,你需要在每台服务器上重复这些步骤,将所有其他服务器的公钥添加到各自的`authorized_keys`文件中。这样,任何服务器都可以无密码地访问集群中的其他服务器。 通过以上步骤,你已经成功地在Centos集群上实现了SSH无密码相互访问,同时也解决了`bash scp command not found`的问题。这种方法大大提高了管理效率,减少了手动输入密码的次数,但务必注意,这种方式也可能增加安全隐患,因此要确保只有可信的用户才能访问这些服务器。