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

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

作者: Monky | 来源:发表于2021-07-08 13:18 被阅读0次

一、背景

  • 我们在开发、测试或者运维过程中,总是需要登录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.png
  1. 服务器A,通过命令把公钥(id_rsa.pub)传到服务器B 的 /root/.ssh 目录下。
scp /root/.ssh/id_rsa.pub root@172.16.206.102:/root/.ssh
2.png
  • 注意:此时可能会保错:没有那个文件或目录,意思是在服务器B 上没有找到 /root/.ssh目录。
  • 处理:登录到服务器B上通过命令 ssh 172.16.206.102 生成该目录。目录生成后,重新切回到服务器A上,重新执行scp命令。
    3.png
  1. 服务器B,中,进入到 /root/.ssh 目录,通过命令把服务器A生成的公钥(id_rsa.pub)追加到 authorized_keys

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

登录:
ssh root@172.16.206.102
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. 两台服务器之间登录的用户名需保持一致。

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/gxooultx.html