在配置两台Linux服务器之间的免密传输时,主要的目标是实现通过SSH协议,无需人工输入密码即可进行互相访问和文件传输,下面将详细介绍配置过程,包括必要的步骤和注意事项。
(图片来源网络,侵删)配置流程
1、生成密钥对
在每台服务器上执行sshkeygen t rsa命令生成密钥对,这会创建id_rsa(私钥)和id_rsa.pub(公钥)文件。
可以选择默认的文件路径和设置密码,但为了真正的免密登录,建议直接按Enter键使用默认设置且不设置密码。
2、复制公钥至对方机器
使用命令sshcopyid i ~/.ssh/id_rsa.pub username@targetserverIP将本地的公钥复制到对方服务器。
此命令会将公钥追加到对方服务器的~/.ssh/authorized_keys文件中,这是SSH服务器用来验证登录请求的文件。
(图片来源网络,侵删)3、验证配置
完成以上步骤后,尝试从一台服务器SSH到另一台,如ssh username@targetserverIP,此时应无需输入密码即可登录。
如果配置正确,应该能够看到对方的服务器命令行提示符。
4、双向验证
若要实现两台服务器相互间的免密登录,需在另一台服务器上也执行上述操作。
特别注意执行sshcopyid命令时,确保目标服务器的用户名和IP地址正确无误。
5、文件传输测试
(图片来源网络,侵删) 使用scp或rsync命令测试文件传输是否也需要密码。scp /path/to/local/file username@targetserverIP:/path/to/remote/directory。
如果配置成功,文件传输也应无需再次输入密码。
详细命令解释
sshkeygen t rsa:在客户端生成新的RSA密钥对。
sshcopyid i ~/.ssh/id_rsa.pub username@targetserverIP:将客户端的公钥复制到服务器的authorized_keys文件中。
ssh username@targetserverIP:从客户端登录到服务器,测试是否无需密码。
scp localfilepath username@targetserverIP:remotefilepath:安全地复制文件到远程服务器。
常见问题及解决方案
问题一:无法登录到服务器
检查两台服务器的防火墙设置,确保SSH端口(默认22)是开放的。
确认~/.ssh/authorized_keys文件的权限是否正确(通常应为600)。
问题二:仍需输入密码
确认sshcopyid命令已正确执行,并且对方服务器的authorized_keys文件中已包含你的公钥。
检查~/.ssh/config文件是否存在配置错误或尝试重新生成密钥对并重复上述步骤。
通过以上步骤,你可以配置两台Linux服务器以实现免密SSH登录和文件传输,这不仅提高了工作效率,也增强了系统的安全性,避免了密码在网络上的传播,希望这些信息对你有所帮助!