生成本机的公钥私钥: [root@localhost ~]# ssh-keygen -t rsa -b 1024
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:IdG319e7Qd6ddzpb4mU9TEReynA/qmcAA8K5TNEcPaA root@localhost.localdomain The key's randomart image is: +---[RSA 1024]----+ | .o*=+ . ...| | +o+oo. +oo.| | oEo .+.. .o+o| | o . .+ . +.+| | S o .oo=| | o o=| | . o.+X| | o.o.| | oo | +----[SHA256]-----+ [root@localhost ~]# ls .ssh id_rsa id_rsa.pub

##将公钥推送到远端服务器上,第一次需要验证密码 ##**注意:**1、使用普通用户使用获得公钥私钥时,如果两边的用户不同,一定要带上用户,不能默认 “ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.18.43.176” 2、若删除了known_hosts,则再次推送公钥时, ssh-copy-id 10.18.43.176 [root@localhost ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.18.43.176

##若出现“wanted were added”说明添加成功了

##再次登录时,就不要密码了,则实现了免密登录

##修改配置文件,可以更改公钥认证或密码认证,阻止别人登录自己的主机 ##但要注意若更改了,则只能在自己的主机上再次更改回来 ##更改完成后要记得重启服务 [root@localhost ~]# vim /etc/ssh/sshd_config [root@localhost ~]# systemctl restart sshd

注释: **-b bits ** 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。 -t type 指定要创建的密钥类型。可以使用:"rsa1"(SSH-1) "rsa"(SSH-2) "dsa"(SSH-2)

~/.ssh/id_dsa.pub 该用户默认的 DSA 身份认证公钥(SSH-2)。此文件无需保密。 此文件的内容应该添加到所有 DSA 目标主机的 ~/.ssh/authorized_keys 文件中。 ~/.ssh/id_rsa 该用户默认的 RSA 身份认证私钥(SSH-2)。此文件的权限应当至少限制为"600"。 生成密钥的时候可以指定采用密语来加密该私钥(3DES)。 ~/.ssh/known_hosts 记录着你每个你访问过计算机的公钥(public key)