场景

  • 服务器A:CentOS_A,假如IP为:1.1.1.1
  • 服务器B:CentOS_B,假如IP为:2.2.2.2 要求实现服务器A向服务器B通过ssh免密登陆及scp传输文件

操作

一、登陆服务器A,执行命令生成密钥对

生成秘钥对命令

ssh-keygen

该命令一直按回车(Enter)即可,默认生成位置一般是:~/.ssh/ 如果用户是非root一般位置是:/home/你的当前用户名/.ssh/ 查看隐藏文件命令

ll -a

或者是

ls -a

进入该路径,

cd ~/.ssh/

二、下载生成的公钥文件:id_rsa.pub

找到 id_rsa.pub 这个文件,现将这个文件下载到本地,如果是root可以通过sz命令下载

sz id_rsa.pub

三、登陆服务器B

登陆服务器B, 切换路径,如果是root用户切入到该路径:/root/.ssh

cd /root/.ssh

该路径下会有以下文件

authorized_keys known_hosts

将步骤二中的服务器A生成的公钥文件 id_rsa.pub 上传至服务器B的该路径(/root/.ssh)下 此时服务器B中/root/.ssh 该路径下应该有以下文件

authorized_keys  id_rsa.pub  known_hosts

最后一步,将服务器A生成的公钥文件id_rsa.pub追加至服务器B的authorized_keys文件 追加命令

cat id_rsa.pub >> authorized_keys

大功告成!

免密登陆

首先登陆服务器A 此时你可以在服务器A通过ssh root@服务器B的IP 直接登陆服务器B 例如:

ssh root@2.2.2.2

免密传输文件

首先登陆服务器A 命令

scp /a.txt root@2.2.2.2:/abc.txt

命令解释:将服务器A的根路径下a.txt文件传输至服务器B的根路径下并且命名为abc.txt

注意

如果第一次免密传输会出现让你确认信息,输入:yes 即可 如下图