CC BY 4.0 (除特别声明或转载文章外)
如果这篇博客帮助到你,可以请我喝一杯咖啡~
ssh-keygen
配置client无密码登录所有Server
SSH无密码原理 client(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在client上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的server上。当client通过SSH连接Salve时,Salve就会生成一个随机数并用client的公钥对随机数进行加密,并发送给client。client收到加密数之后再用私钥解密,并将解密数回传给server,server确认解密数无误之后就允许client进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端client复制到server上。
client机器上生成密码对
ssh-keygen –t rsa –P ''
接着配置
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
在验证前,需要做两件事儿。第一件事儿是修改文件”authorized_keys”权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能),另一件事儿是用root用户设置”/etc/ssh/sshd_config”的内容。使其无密码登录有效。
- 修改文件”authorized_keys”
chmod 600 ~/.ssh/authorized_keys
- 设置SSH配置
用root用户登录服务器修改SSH配置文件”/etc/ssh/sshd_config”的下列内容。
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
设置完之后记得重启SSH服务,才能使刚才设置有效。
service sshd restart
ssh localhost
- 把公钥复制所有的Slave机器上。使用下面的命令格式进行复制公钥:
scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/
server机器配置
mkdir -p ~/.ssh
chmod 700 ~/.ssh
- 追加到授权文件”authorized_keys”
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
- 用root用户修改”/etc/ssh/sshd_config”
- 用client使用SSH无密码登录Slave
ssh 14.0.0.13