Image 2 Image 3 Image 3 Image 3

全方位揭秘!大数据从0到1的完美落地之Linux_SCP和SSH命令

频道:行业资讯 日期: 浏览:845

全方位揭秘!大数据从0到1的完美落地之Linux_SCP和SSH命令

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拿到解密结果之后,与之前的字符串进行比较,如果相同,则可以登录成功。

全方位揭秘!大数据从0到1的完美落地之Linux_SCP和SSH命令

免密登录的实现

我们最终的目标是实现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 留言

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码