Linux远程传输文件免密码验证登陆和拷贝文件

原文链接:http://blog.csdn.net/xyang81/article/details/51477925

在工作当中经常会登录远程服务器安装软件、部署应用或者拷贝文件到远程服务器上,都会提示输入密码才能完成相关的操作。工作中如果要频繁登录服务器和拷贝文件的情况下,经常输入密码难免会觉得麻烦,且效率低下。而且在持续集成的场景下,自动部署应用时是没有人工干预的,这种情况如果要输入密码才能拷贝文件至远程服务器,就不能实现自动部署的功能了。下面以A服务器与B服务器双向实现免密码登录和拷贝文件为例,介绍相关的配置。 
A服务器地址:192.168.1.200,下面简称A 
B服务器地址:192.168.1.201,下面简称B

1、在A生成密钥对

ssh-keygen -t rsa -P ""
  • 1

执行上述命令,一路回车,会在当前登录用户的home目录下的.ssh目录下生成id_rsa和id_rsa.pub两个文件,分别代表密钥对的私钥和公钥,如下图所示: 
rsa密钥对

2、拷贝A的公钥(id_rsa.pub)到B

这里拷贝到B的root用户home目录下为例:

scp /root/.ssh/id_rsa.pub root@192.168.1.200:/root
  • 1

3、登录B

拷贝A的id_rsa.pub内容到.ssh目录下的authorized_keys文件中

cd /root
cat id_rsa.pub >> .ssh/authorized_keys
  • 1
  • 2

4、此时在A中用SSH登录B或向B拷贝文件,将不需要密码

ssh root@192.168.1.201
scp abc.txt root@192.168.1.201:/root
  • 1
  • 2

实现B免密码登录A,操作方式是一样的,在B中用ssh-keygen生成ssh密钥对,将公钥拷贝到A中,A将B的公钥拷贝到.ssh目录下的authorized_keys文件中即可。


快捷方式

ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器地址

这个最好用在自动化运维中的传输安装文件,可以在对应的脚本中

先判断控制端是否有该文件,如果没有创建,先创建再执行,

发散到,如果对方机器中不同网络区域,例如:A--->|B--|->C|  A无法到C中间有隔离或者防火墙,可以从B到C

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值