场景
- 服务器A:CentOS_A,假如IP为:1.1.1.1
- 服务器B:CentOS_B,假如IP为:2.2.2.2 要求实现服务器A向服务器B通过ssh免密登陆及scp传输文件
操作
一、登陆服务器A,执行命令生成密钥对
生成秘钥对命令
代码语言:javascript复制ssh-keygen
该命令一直按回车(Enter)即可,默认生成位置一般是:~/.ssh/ 如果用户是非root一般位置是:/home/你的当前用户名/.ssh/
查看隐藏文件命令
代码语言:javascript复制ll -a
或者是
代码语言:javascript复制ls -a
进入该路径,
代码语言:javascript复制cd ~/.ssh/
二、下载生成的公钥文件:id_rsa.pub
找到 id_rsa.pub 这个文件,现将这个文件下载到本地,如果是root可以通过sz命令下载
代码语言:javascript复制sz id_rsa.pub
三、登陆服务器B
登陆服务器B, 切换路径,如果是root用户切入到该路径:/root/.ssh
代码语言:javascript复制cd /root/.ssh
该路径下会有以下文件
代码语言:javascript复制authorized_keys known_hosts
将步骤二中的服务器A生成的公钥文件 id_rsa.pub 上传至服务器B的该路径(/root/.ssh)下 此时服务器B中/root/.ssh 该路径下应该有以下文件
代码语言:javascript复制authorized_keys id_rsa.pub known_hosts
最后一步,将服务器A生成的公钥文件id_rsa.pub追加至服务器B的authorized_keys文件 追加命令
代码语言:javascript复制cat id_rsa.pub >> authorized_keys
大功告成!
免密登陆
首先登陆服务器A 此时你可以在服务器A通过ssh root@服务器B的IP 直接登陆服务器B 例如:
代码语言:javascript复制ssh root@2.2.2.2
免密传输文件
首先登陆服务器A 命令
代码语言:javascript复制scp /a.txt root@2.2.2.2:/abc.txt
命令解释:将服务器A的根路径下a.txt文件传输至服务器B的根路径下并且命名为abc.txt
注意
如果第一次免密传输会出现让你确认信息,输入:yes 即可 如下图