为系统管理员,你计划在Linux上使用OpenSSH,完成日常工作的自动化,比如文件传输、备份数据库转储文件到另一台服务器等。为实现该目标,你需要从主机A能自动登录到主机B。自动登录也就是说,要在shell脚本中使用ssh,而无需要输入任何密码。
本文会告诉你怎样在CentOS/RHEL上设置SSH免密码登录。自动登录配置好以后,你可以通过它使用SSH(SecureShell)和安全复制(SCP)来移动文件。
SSH是开源的,是用于远程登录的最为可靠的网络协议。系统管理员用它来执行命令,以及通过SCP协议在网络上向另一台电脑传输文件。
通过配置SSH免密码登录,你可以享受到如下的便利:
用脚本实现日常工作的自动化。
增强Linux服务器的安全性。这是防范虚拟专用服务器(VPS)遭受暴力破解攻击的一个推荐的方法,SSH密钥单凭暴力破解是几乎不可攻破的。
什么是ssh-keygen
ssh-keygen是一个用来生成、创建和管理SSH认证用的公私钥的工具。通过ssh-keygen命令,用户可以创建支持SSH1和SSH2两个协议的密钥。ssh-keygen为SSH1协议创建RSA密钥,SSH2则可以是RSA或DSA。
什么是ssh-copy-id
ssh-copy-id是用来将本地公钥拷贝到远程的authorized_keys文件的脚本命令,它还会将身份标识文件追加到远程机器的~/.ssh/authorized_keys文件中,并给远程主机的用户主目录适当的的权限。
SSH密钥
SSH密钥为登录Linux服务器提供了更好且安全的机制。运行ssh-keygen后,将会生成公私密钥对。你可以将公钥放置到任意服务器,从持有私钥的客户端连接到服务器的时,会用它来解锁。两者匹配时,系统无需密码就能解除锁定。
在CentOS和RHEL上设置免密码登录SSH
以下步骤在CentOS5/6/7、RHEL5/6/7和OracleLinux6/7上测试通过。
节点1:192.168.0.9节点2:192.168.l.10
步骤1:
测试节点1到节点2的连接和访问:
复制代码