Linux 服务器间SSH免密码登录与拷贝文件(SCP)

服务器 0

适用背景

  • 工作中频繁登录服务器和拷贝文件,都会提示输入密码
  • 在持续集成的场景下,自动部署应用时是没有人工干预的

解决方案

下面以实现A服务器到B服务器的免密码登录和拷贝文件为例,介绍相关的配置。(即A访问B不需要输密码)

A服务器(主服务器)地址:192.168.1.AAA
B服务器(从服务器)地址:192.168.1.BBB

step1 在A生成密钥对

如果已经有了也可以选择不用生成

ssh-keygen -t rsa -P ""

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

image-20240404142852463

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

将A的公钥(id_rsa.pub)拷贝到B的用户下为例(我们以root为例)

scp ~/.ssh/id_rsa.pub    root@192.168.1.BBB:/root

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

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

cat id_rsa.pub >> ~/.ssh/authorized_keys

如果提示没有.ssh文件夹就自己重建一个

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

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

解决方案快捷方式

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.BBB

也许您对下面的内容还感兴趣: