对于使用SHELL脚本进行批量服务器登录管理时,我们期望通过脚本能免密钥登录服务器,从而进行一些运维工作。
场景:
服务器A:192.168.1.132
服务器B:192.168.1.133
我们想通过服务器A免密钥ssh登录服务器B
步骤如下:
1、在服务器A上执行ssh-keygen生成公钥和密钥 ssh-keygen 回车三次 ![]() 此时在/root/.ssh目录下会生成密钥id_rsa和公钥id_rsa.pub 2、将公钥id_rsa.pub拷贝至服务器B ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.1.133 第一次拷贝公钥需要得到远程机器的授权允许(输入对方的密码) 3、远程登录就不需要输入密码 [root@centos.ssh]# ssh -l root 192.168.1.133 "df -h" Filesystem Size Used Avail Use% Mounted on /dev/sda2 15G 4.3G 10G 30% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 190M 30M 150M 17% /boot /dev/sda3 3.9G 8.1M 3.7G 1% /home 4、公钥拷贝至服务B的路径和名称是[root@centos.ssh]# ll /root/.ssh/ -rw-------1 root root 393 11月 18 17:18authorized_keys 5、配置多台机器都免密钥,将公钥的id_rsa.pub内容追加至远程机器的authorized_keys文件中 |