ssh-copy-id命令可以把本地主机的公钥复制并追加到远程主机的authorized_keys文件中,该命令也会给远程主机的用户主目录(home),~/.ssh目录和~/.ssh/authorized_keys设置合适的权限。
步骤一:分别在每个节点中执行以下命令,生成秘钥文件:
$ cd ~/.ssh #若没有该文件,请先执行一次ssh localhost命令
$ ssh-keygen -t rsa # 生成秘钥文件,会有提示输入加密信息,都按回车键即可
步骤二:分别在每个节点执行以下命令,将公钥信息复制并追加到对方节点的授权文件authorized_keys中
$ ssh-copy-id centosnode01
$ ssh-copy-id centosnode02
$ ssh-copy-id centosnode03
$ ssh-copy-id centosnode04
命令执行过程中需要输入当前用户的密码.
注意:上述的命令都需要在需要密码登录的机器上执行。
~/.ssh/known_hosts作用
ssh会把你每个访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。
如果删除该know_hosts文件,下次登录时,自动会生成该文件.
查看如下两个文件内容:
$ cat known_hosts
$ cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDF5PAY7h29U6di38xIGuSf+wKZkRFAYIvhS+ngdqVLH5i1EkHIEDcdTTrX4JflJW8ifA5KYlfxtamWaZ3a4/E0LigwByJFDdDVZOIzzgPPHudsCybdcrDk1snbl402dGQP5YYnllQgWJ7eY+nQmW35KubI4gxY8XYWDS/lW6gbI74jN+486UFrRmQMTsyViIgleNJu9RV19f2RsDMo4LBQszGeP/UzfJkhlBOzCGrhlM+lGl2Wg5IqL3aGKxX4mTfDOcXDs53a5RJiMiDxnSk14xRRKfeSubDCNoV6iw0MySqI+7WMCiTyKlSup0sJqu0mzz6hZA486TT5dvSXPXzN hadoop@centosnode04