LINUX-免密登陆配置(解决集群模式下各节点之间如何方便地拷贝文件)

集群模式下,各节点之间如何方便的拷贝文件?

命令格式:

scp file  远程用户名@远程服务器IP:~/  (注意:冒号和目录之间不能有空格)

如果拷贝目录,需要加-r 选项。       

使用root用户

eg: scp /etc/profile root@node2:/etc

eg: scp -r /usr/jdk1.8  node2:/usr/java

eg:scp  hello.log  node2:`pwd`

eg:scp  hello.log  node2:$PWD

注:使用`pwd`或者$PWD 默认到当前目录。

~:到当前用户的宿主目录

scp /etc/services  node2:/root/service.hard

可以通过这种方式修改拷贝的文件名。

 

切换到其他节点

ssh node2

 

免密登录

上诉scp,ssh命令每次执行都需要输入对应服务器的密码,因此配置免密登陆可以极大节省操作步骤

假如有AB两台机器,需要配置A机免密登陆到B机

step1:A机器上生成一对钥匙,公钥和私钥

A机器当前用户的宿主目录下的.ssh目录多了两个文件

step2:将公钥拷贝给要免密码登录的机器B

注意:主机名和ip都可以(确保配置了主机名 ip的映射)

还需要输入密码

拷贝完成之后,会在要免密登录的机器上生成授权密码文件

注意:免密码登录是单向的,以上是配置了A->B免密登陆,假如要使得B->A免密登陆,按照上面步骤反向配置即可

 

ssh免密登录原理:

1,node1 使用 ssh-keygen –t rsa 生成公钥和私钥

2,ssh-copy-id root@node2 将公钥拷贝到node2上,实际上是把公钥内容追加到 authorized_keys文件中。

请求时:

1,node1向node2发送连接请求时,附带主机,ip地址等信息

2,node2收到请求后,去授权文件里查找node1的公钥,找到之后,随机生成一个字符串,并用公钥加密,并发送给node1

3,node1接收到密文之后,用私钥解密,并把解密结果返回给node2

4,node2拿到解密结果之后,与之前的字符串进行比较,如果相同,则可以登录成功。

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_41686130/article/details/100071855