scp命令
cp命令,是拷贝的作用,可以实现将文件或者目录拷贝到另外一个位置。
scp命令,也是拷贝的作用,但是是远程拷贝,可以实现将文件或者目录拷贝到另外的一台机器上。命令格式
# scp file 远程用户名@远程服务器:目标路径
# 示例:
scp ~/data/a.log xiaoxiaoqian@qianfeng02:/home/xiaoxiaoqian/data/ # 将本机的~/data/a.log文件,拷贝到qianfeng02机器上的/home/xiaoxiaoqian/data下
scp ~/data/a.log root@qianfeng02:/root/data/ # 将本机的~/data/a.log文件,拷贝到qianfeng02机器上的/root/data下
# 上述两个拷贝的区别:
# 其实都是拷贝,区别就是使用的用户。在进行拷贝的时候,是需要你输入目标机器的指定用户的密码的。
# 例如:
# 第一个拷贝,xiaoxiaoqian@qianfeng02,需要验证qianfeng02节点上的xiaoxiaoqian的密码。
# 第二个拷贝,root@qianfeng02,需要验证qianfeng02节点上的root的密码。
# 如果需要拷贝文件夹,添加-r
scp -r /usr/local/jdk root@qianfeng02:/usr/local/ # 将本机的/usr/local/jdk目录,拷贝到qianfeng02的/usr/local下小技巧
# 1. 如果远程的用户,与本机的用户名相同,可以省略目标的用户名
# 示例: 本机登录的用户是root,远程的qianfeng02的用户也是root,因此可以省略
scp ~/a.log root@qianfeng02:/root/data/ # 拷贝给qianfeng02的root用户
scp ~/a.log qianfeng02:/root/data # root用户省略,直接写qianfeng02即可
# 2. 如果需要拷贝到远程服务器与本机相同的路径,可以使用$PWD
# 示例:
[root@qianfeng01 local]# pwd
/usr/local/
[root@qianfeng01 local]# scp -r jdk qianfeng02:/usr/local/ # 需要远程拷贝给qianfeng02的/usr/local目录,而本机当前也在这个路径下,因此可以简写
[root@qianfeng01 local]# scp -r jdk qianfeng02:$PWD # 用$PWD表示当前的工作路径ssh免密登录
ssh的简介
ssh: 是一个远程登录的命令,可以远程登录到指定的虚拟机。
其实,我们使用的远程连接工具,就是使用ssh实现的。
ssh在进行远程登录的时候,需要进行身份验证,输入远程登录用户的密码。
例如:
ssh root@qianfeng02 # 需要输入qianfeng02节点的root密码
ssh qianfeng02 # 当远程登录的用户名,与当前的用户名相同的时候,远程用户名可以省略
在我们后续的使用中,集群的节点之间需要频繁的进行通信,因此免密登录是必须要配置的。
如果不配置免密登录,则在很多时候集群通信的时候,需要输入密码。这就需要人工维护,成本很高,而且很麻烦。免密登录的原理
qianfeng01使用ssh-keygen -t rsa生成公钥和私钥。
ssh-copy-id qianfeng02,将公钥拷贝到qianfeng02上,实际就是把公钥的内容追加到authorized_keys文件中。
请求时: qianfeng01向qianfeng02发送连接请求时,附带主机、IP地址等信息。
qianfeng02收到请求后,去授权文件(authorized_keys)中查找qianfeng01的公钥,找到之后,随机生成一个字符串,并使用公钥加密,发送给qianfeng01。
qianfeng01收到密文后,用私钥解密,并把解密的结果返回给qianfeng02。
qianfeng02拿到解密结果之后,与之前的字符串进行比较,如果相同,则可以登录成功。
免密登录的实现
我们最终的目标是实现qianfeng01免密登录到qianfeng02,即在qianfeng01上远程登录qianfeng02不需要密码。
在qianfeng01上生成一对钥匙,分为公钥和私钥
当前用户的家目录下的.ssh目录中,会生成两个文件
将公钥拷贝给要免密登录的机器
最终要实现的是将id_rsa.pub,即公钥中的数据,添加到目标机器的authornized_keys文件中。你可以使用scp将公钥远程拷贝到目标机器,然后添加到目标文件末尾。但是麻烦。可以使用更简单的方式: ssh-copy-id 1. 如果没有这个命令,可以自己安装 [root@qianfeng01 ~]# yum install openssh-clients -y 2. 将公钥拷贝到目标机器 [root@qianfeng01 ~]# ssh-copy-id qianfeng02 3. 输入密码,完成拷贝
0 留言