Linux下scp免密传输文件

本文介绍如何在Linux环境下配置两台主机之间的SCP命令免密码文件传输。通过生成SSH密钥对并在目标主机上授权,实现从一台主机无密码复制文件到另一台主机的功能。

Linux下用SCP无需输入密码传输文件

在Linux环境下,两台主机之间传输文件一般使用scp命令,通常用scp命令通过ssh获取对方linux主机文件的时候都需要输入密码确认。

不过通过建立信任关系,可以实现不输入密码。

建立信任关系

前提:

假设A服务器的IP:192.168.10.1
假设B的IP:192.168.10.2

目的:

需要从A主机免密码输入复制文件或文件夹至B主机,或者将B主机的文件或文件夹免密码复制到A主机

操作过程:

第一步:在A主机上执行以下命令来生成配对密钥:

命令:ssh-keygen -t rsa 

按照提示操作,注意,不要输入passphrase。提示信息如下
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ff:8e:85:68:85:94:7c:2c:46:b1:e5:2d:41:5c:e8:9b root@localhost.domain

第二步:将 A主机 的.ssh 目录中的 id_rsa.pub 文件复制到 主机B 的 ~/.ssh/ 目录中,并改名为 authorized_keys

命令:scp /root/.ssh/id_rsa.pub B主机IP地址:/root/.ssh/authorized_keys 

以后从A主机scp到B主机就不需要密码了

可能出现的报错信息以及解决方法:

# 报错信息
root@ubuntu:/home/xinxin# cd /root/.ssh/
bash: cd: /root/.ssh/: No such file or directory
# 具体解决方法操作
原因:没有用root用户登录过
执行操作:执行下ssh操作,就能自动生成
执行命令:ssh localhost
yes
输入password
cd /root/.ssh/就进入了root下的.ssh目录

使用此方法需要注意:

复制的两台计算机需要用相同的账户名,这里都是用的root。
保持A、B主机均为root账户下,执行第一步,第二步中复制文件时可能.ssh目录并不存在,需要手动创建。

在第二步中如果机器中已经存在authorized_keys文件,则需注意,这个文件可以包含多个SSH验证信息,这时可用 cat >>命令将验证文件内容附加上去。

# 先将公钥文件从A主机复制到B主机,以a.pub命名
比如复制到scp .ssh/id_rsa.pub B主机IP地址:/root/.ssh/a.pub

# 再从B主机将a.pub文件中的SSH验证信息增加到原来已有的authorized_keys文件中
然后在B主机上执行cat ~/.ssh/a.pub >> ~/.ssh/authorized_keys

注意:完成以下方法后需要在A主机测试将文件或文件夹scp无密码传输至B主机、将B主机的文件或者文件夹拿到A主机(测试文件可以大一些,测试稳定性,建议1G大小)

测试命令:

# 将A主机的/home/a/testa.txt免密传输给B主机的/home/b/,root的是B主机的用户名,@后面是B主机的IP地址,root@可有可无

scp /home/a/testa.txt root@B主机IP:/home/b/

# 将B主机的/home/b/testb.txt免密传输给A主机的/home/a/下,root的是B主机的用户名,@后面是B主机的IP地址,root@可有可无

scp root@B主机IP:/home/b/testb.txt /home/a/

注:

以上所有操作流程均为实际操作和网上资料整理所得,可行性均已得到验证
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值