概述
业务场景中经常需要进行跨服务器的操作,即从一台服务器上登录到另外一台服务器,默认情况下,SSH远程登录时需要输入远程服务器密码。当需要在可信任的服务器之间进行频繁或自动化的操作时,输入密码就会带来不便,本文介绍如何实现SSH远程免密登录。
配置免密登录
- 在本地服务器上运行命令,生成公钥、私钥
ssh-keygen -t rsa
执行该命令后,系统提示时直接三次回车即可(一般按默认值)
[cenots@nnkin ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/nnkin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/nnkin/.ssh/id_rsa.
Your public key has been saved in /home/nnkin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Ct6HIbAfypJpr/VLzxOeWX4WngQPUaSrJTguPN23Eh4 centos@nnkin
The key's randomart image is:
+---[RSA 2048]----+
| oo |
| .. |
| . .. |
| o . o. |
| . +o..So+ |
| +.+o=oE+. + |
|+.o=o+*oX.o o |
|..o = oO...= |
| ... o.oo.o |
+----[SHA256]-----+
[cenots@nnkin ~]$
- 公钥储存在 /root/.ssh/id_rsa.pub
- 私钥储存在 /root/.ssh/id_rsa
[cenots@nnkin ~]$ cd ~/.ssh/
[cenots@nnkin .ssh]$ ls
id_rsa id_rsa.pub known_hosts
- 在本地服务器上运行命令,拷贝公钥至远程服务器
ssh-copy-id -i /root/.ssh/id_rsa.pub root@<IP_ADDRESS>
执行此命令需要输入远程服务器密码
- 在本地服务器上运行命令,测试ssh免密登录远程服务器
ssh <IP_ADDRESS>
此时就可以直接免密登录远程服务器进行操作了。