Linux系统通过rsa免密码登录、文件传输

本文介绍了如何在Linux环境中实现服务器之间的免密登录和文件传输。首先在服务器A上生成SSH密钥对,然后将公钥发送到服务器B,并将其追加到authorized_keys文件中。完成设置后,可以从服务器A直接免密登录到服务器B,并能方便地进行文件传输。此方法提高了运维效率,避免了频繁输入密码的繁琐操作。
摘要由CSDN通过智能技术生成

一、背景

  • 我们在开发、测试或者运维过程中,总是需要登录Linux服务器进行环境搭建,软件安装和日志查询等操作,如果有多台服务器,则需要进行多次切换,切换过程会需要输入密码难免会觉得麻烦,且效率低下。这种情况下,可以利用软件保存密码,然后软件多开解决此问题,但是难免有可能会出现搞错服务器的情况。
  • 再者在处理定时或者自动化任务,比如定时进行文件传输的话和自动部署,就会比较不方便了,通过以下方式可以解决该问题。

二、步骤

  • 假设两台服务器
    • 服务器A(172.16.206.101)
    • 服务器B(172.16.206.102)
  • 例子实现的是登录:服务器A —> 服务器B
  • 文件:服务器A —> 服务器 B

  1. 首先我们在服务器A(172.16.206.101),使用下面的命令生成私钥:id_rsa公钥:id_rsa.pub,公钥是可以发送到别的服务器的,私钥是保存在当前服务器中的(切忌传输到别的服务器上)。
    ssh-keygen -t rsa
    
  • 执行上面的命令,然后一路回车即可,生成文件的目录为:/root/.ssh,.ssh为隐藏文件目录,想查看的话通过命令ll -a进行查看。
    在这里插入图片描述
  1. 服务器A,通过命令把公钥(id_rsa.pub)传到服务器B 的 /root/.ssh 目录下。
    scp /root/.ssh/id_rsa.pub root@172.16.206.102:/root/.ssh
    
    如果目标服务器(这里的服务器B),不是22端口,假设是33333端口,则:
    scp -P 33333 /root/.ssh/id_rsa.pub root@172.16.206.102:/root/.ssh
    
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6sdJZ862-1625643709818)(2.png)]
  • 注意:此时可能会保错:没有那个文件或目录,意思是在服务器B 上没有找到 /root/.ssh目录。
  • 处理:登录到服务器B上通过命令 ssh 172.16.206.102 生成该目录。目录生成后,重新切回到服务器A上,重新执行scp命令。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uQyEh2zy-1625643709820)(3.png)]
  1. 服务器B,中,进入到 /root/.ssh 目录,通过命令cat id_rsa.pub >> authorized_keys把服务器A生成的公钥(id_rsa.pub)追加到 authorized_keys
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GEqSq78V-1625643709822)(4.png)]

  2. 完成后,服务器A就可以通过免密登录到服务器B了

    登录:
    ssh root@172.16.206.102
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L4KChiFG-1625643709823)(5.png)]

  • 传输文件

    传输文件:
    scp /home/1.jpg root@172.16.206.102:/home/picture
    
    命令行的意思是:把home目录下 1.jpg的图片,传输到服务器B的 home目录下的 picture文件夹中
    

三、总结

  1. 服务器A,生成公钥(id_rsa.pub)和私钥(id_rsa);

    ssh-keygen -t rsa

  2. 服务器A,把公钥传输到服务器B的 /root/.ssh 目录;

    scp /root/.ssh/id_rsa.pub root@${服务器B的IP}:/root/.ssh
    如:scp /root/.ssh/id_rsa.pub root@172.16.206.102:/root/.ssh

    如果服务器B 没有 /root/.ssh ,登录到服务器B,通过命令:ssh 服务器B的IP 生成;
    如:ssh 172.16.206.102

  3. 服务器B,进入 /root/.ssh,把公钥追加到 authorized_keys文件中;

    cat id_rsa.pub >> authorized_keys
    如果没有authorized_keys文件也没有关系,执行命令后,会自动生成

四、注意事项

  1. 两台服务器之间登录的用户名需保持一致。
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值