Linux配置SSH免登录
scp & ssh
集群模式下,各节点之间如何方便的拷贝文件?
命令格式:
scp file 远程用户名@远程服务器IP:~/ (注意:冒号和目录之间不能有空格)
如果拷贝目录,需要加-r 选项。
使用root用户
eg: scp /etc/profile [email protected]:/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
可以通过这种方式修改拷贝的文件名。
如何方便的切换到其他节点??
sshnode2
免密登录
1, 在第一台机器上生成一对钥匙,公钥和私钥
当前用户的宿主目录下的.ssh目录多了两个文件
将公钥拷贝给要免密码登录的机器
注意:主机名和ip都可以(确保配置了主机名 ip的映射)
还需要输入密码
拷贝完成之后,会在要免密登录的机器上生成授权密码文件
验证免密码登录
注意:免密码登录是单向的
扩展:
ssh免密登录原理:
1, node1使用 ssh-******–t rsa 生成公钥和私钥
1, ssh-copy-id [email protected] 将公钥拷贝到node2上,实际上是把公钥内容追加到 authorized_keys文件中。
请求时:
1,node1向node2发送连接请求时,附带主机,ip地址等信息
2, node2收到请求后,去授权文件里查找node1的公钥,找到之后,随机生成一个字符串,并用公钥加密,并发送给node1
3, node1接收到密文之后,用私钥解密,并把解密结果返回给node2
4, node2拿到解密结果之后,与之前的字符串进行比较,如果相同,则可以登录成功。