两种最流行的SSH身份验证机制是基于密码的身份验证和基于公钥的身份验证。使用SSH密钥通常比传统的密码身份验证更安全、更方便。环境客户端:CentOS8192.168.43.137服务器:CentOS8192.168.43.139创建SSH公私钥输入以下命令生成新的4096位SSH密钥对:[root@localhost~]#ssh-keygen-trsa-b4096生成公共/私人rsa密钥对。输入保存密钥的文件(/root/.ssh/id_rsa):输入密码(没有密码为空):再次输入相同的密码:您的身份已保存在/root/中。ssh/id_rsa。您的公钥已保存在/root/.ssh/id_rsa.pub。密钥指纹为:SHA256:ycOtSDK8ud2kd6EH7OxoQuc1BFb1HJ3T/kvAQJt0LrIroot@localhost.localdomain密钥的随机图像为:+---[6RSA-409---+|...oo.oo||o.+=.+.||...+=。o||.o.o.o.||+.oSE。..||.*..=o...||.oo.+o+。..||.oo==o。||.o+ooo|+----[SHA256]-----+setinCentOS8SSHkeysetSSHkeyinCentOS8验证是否生成了新的SSHkeypair,使用ls-l命令查看是否有是~/.ssh目录下刚刚生成的一个文件:[root@localhost~]#ll~/.ssh/total8-rw------1rootroot3389May1308:26id_rsa-rw-r--r--1rootroot752May1308:26id_rsa.pub在CentOS8中设置SSH密钥在CentOS8中设置SSH密钥将公钥复制到远程服务器,使用ssh-copy-id实用程序,输入远程服务器的根密码:[root@localhost~]#ssh-copy-idroot@192.168.43.139/usr/bin/ssh-copy-id:INFO:要安装的密钥来源:“/root/.ssh/id_rsa.pub”主机'192.168.43.139(192.168.43.139)'无法建立。ECDSA密钥指纹为SHA256:7O1oIOooh4NZG87aC3v1Zz/vcTXkjOhQBnlkY0CD4y0。您确定要继续连接吗(是/否)?是/usr/bin/ssh-FOcopy:-id:尝试使用新密钥登录,以过滤掉任何已安装的/usr/bin/ssh-copy-id:INFO:1key(s))仍有待安装——如果现在提示您安装新的密钥密码:添加的密钥数量:1现在尝试登录机器,使用:“ssh'root@192.168.43.139'”并检查确保只添加了您想要的密钥。在CentOS8中设置SSH密钥在CentOS8中设置SSH密钥您还可以使用以下命令复制公钥:[root@localhost.ssh]#cat~/.ssh/id_rsa.pub|sshroot@192.168.43.139"mkdir-p~/.ssh&&chmod700~/.ssh&&cat>>~/.ssh/authorized_keys&&chmod600~/.ssh/authorized_keys"Logintoserverwithkey使用以下命令登录ssh服务器:[root@localhost~]#ssh192.168.43.139Lastlogin:TueMay1212:33:412020from192.168.43.137在CentOS8中设置SSH密钥在CentOS8中设置SSH密钥关闭密码验证登录服务器,关闭密码验证:[root@localhost~]#ssh192.168.43.139Lastlogin:TueMay1212:33:412020from192.168.43.137[root@localhost~]#vim/etc/ssh/sshd_config搜索三项,在AuthenticationnoUsePAMno中将选项改为NoPasswordAuthenticationnoChallengeResponseCentOS8设置SSH密钥CentOS8设置SSH密钥重启sshd服务:[root@localhost~]#systemctlrestartsshd总结可以使用同一个密钥管理多个远程服务器默认SSH的端口是TCP22。更改默认SSH端口可降低自动攻击的风险。
