两台Linux服务器,服务器A和服务器B,需要在服务器A上使用密钥进行ssh免密登录到服务器B上和使用scp命令免密远程拷贝文件。其实操作非常简单,接下来就介绍操作步骤。
1. 制作密钥对
在服务器A上执行ssh-keygen命令生成密钥,-b指定长度,-t指定密钥类型
ssh-keygen -b 2048 -t rsa
这里需要点击三次回车,分别是:
-
输入保存密钥的文件或按Enter默认存~./ssh目录下
-
输入密钥锁码,或直接按 Enter 留空
-
再输入一遍密钥锁码
[服务器A .ssh]# ssh-keygen -b 2048 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <==Enter默认
Enter passphrase (empty for no passphrase): <==Enter默认留空
Enter same passphrase again: <==Enter默认留空
Your identification has been saved in /root/.ssh/id_rsa <==私钥
Your public key has been saved in /root/.ssh/id_rsa.pub <==公钥
2. 安装公钥
在服务器B上安装公钥文件夹和文件
cd ~/.ssh/
touch authorized_keys
为了确保连接成功,确保以下文件权限正确:
chmod 600 authorized_keys
chmod 700 ~/.ssh
把服务器A上生成公钥~/.ssh/id_rsa.pub的内容复制到服务器B~/.ssh/authorized_keys的文件里
1.在服务器A上打开~/.ssh/id_rsa.pub
cat ~/.ssh/id_rsa.pub
2.复制服务器A cat ~/.ssh/id_rsa.pub的内容写入服务器B ~/.ssh/authorized_keys文件中
vi ~/.ssh/authorized_keys
3. 重启ssh服务
systemctl restart sshd
4.测试
在服务器A上通过ssh免密登录服务器B
ssh 服务器B的ip地址
例:ssh 127.0.0.1
将服务器A上/tmp/test.txt文件远程拷贝到服务器B的/tmp/目录下
scp /tmp/test.txt 服务器B配置公钥的用户@服务器B的ip地址:/tmp/
例:scp /tmp/test.txt root@127.0.0.1:/tmp/
反之将服务器B上/tmp/test.txt文件远程拷贝到服务器A的/tmp/目录下
scp 服务器B配置公钥的用户@服务器B的ip地址:/tmp/test.txt /tmp/
例:scp root@127.0.0.1:/tmp/test.txt /tmp/