
服务器免密登录实际上是基于公钥的认证,比如希望A服务器可以免密访问B服务器,则需要进行如下步骤
使用ssh-keygen命令在客户端机器上创建密钥对
-t 代表指定密钥类型,密钥的类型有两种,一种是RSA,一种是DSA,默认rsa 也即命令可以不加 -t rsa 参数 命令执行过程中有三次确认,分别是存储位置、密码、确认密码,保持默认即可
ssh-keygen -t rsa

文件说明:
文件 | 说明 |
|---|---|
id_rsa | 生成的私钥 |
id_rsa.pub | 生成的公钥 |
known_hosts | ssh访问过的服务器的公钥记录 |
authorized_keys | 授权过的登录该服务器公钥 |
分发密钥有两种方式:
客户端服务器上使用ssh-copy-id将公钥分发到目标服务器上
当目标服务器ssh非22默认端口时,应通过-p参数指定端口 分发公钥时需要验证目标服务器的密码
ssh-copy-id -p 50022 centos7-hadoop-131
效果:

复制客户端服务器的公钥到目标服务器对应用户目录下的.ssh文件夹下的authorized_keys文件(即~/.ssh/authorized_keys 文件) 此种方式需要注意.ssh文件夹和authorized_keys 文件的权限设置 .ssh 的权限需要为700 authorized_keys 的权限需要为600
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys