SSHkeyauthentication是什么?相对于用户密码登录,SSH密钥认证更加安全,因为只有拥有密钥的人才能连接,并且密钥通过不同的算法进行了很好的加密。它还通过无密码登录使SSH连接变得容易。这个有两种解决方法,一种是需要自己登录服务器,另一种是开一个账号让别人登录服务器。客户端生成密钥对。coder大部分是windows系统,这里用windows来演示。在windows系统下,按ctrl+r,直接输入cmd,然后在打开的命令行窗口,直接进入.ssh目录下$cd.ssh运行命令生成密钥对(可以使用已有的密钥,也可以生成一个newkeypair)$ssh-keygen执行上面的命令首先会让你输入生成密钥的文件名:我这里输入的是xjdemo_xiaojin,然后一路回车(也可以输入密码双重保护)就可以了在执行命令的当前目录下会生成一个xjdemo_xiaojin.pub、xjdemo_xiaojin两个文件。向服务器添加证书方法1:将公钥复制到Ubuntu主机的最快方法是使用名称ssh-copy-id。由于简单,强烈推荐这种方法(如果有的话,比如使用GitBash的老朋友,可以直接使用这个linux命令让服务器自动添加认证证书)$ssh-copy-id-i~/xjdemo_xiaojin.pubroot@172.25.1.230方法二:如果你没有可用的ssh-copy-id,但你可以通过基于密码的SSH访问服务器上的账户,你可以使用传统的SSH方法上传你的密钥。我们可以通过使用cmd的type命令来读取本地计算机上的公共SSH密钥的内容,并通过SSH连接将其传输到远程服务器。$C:\Users\EDY\.ssh>typexjdemo_xiaojin.pubssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABgQC90tsEOp9oL+iprQ3ig0y8pcpssR18zxCiD19YvkiL3Y3i9Rg6Kwh48wFy+rjhRbyxeMse2U12nGsLh4mEcEXp7uELXlzSwVKxmJ7JBvuiV/B90Cumf03EwALcsdODIY3z2CwLhc0EAd52xsILXsdFGZDoTcvwzlZ1SZC3SgmfFHnkh6QknWZSAt2pwIl/h2t4jG98X6EraEpmynKHQfbnPIFI7U5T3rNjbSp4WkAff39d8teGqCLk4k7KxC6ngFBIz/itGG/W4X2auW85KV7u/Ptp/BeP25zC2LLqvdZoEkJz0GOM50XLdekQV3lbeh4Zy47AuiwF6ooOhqENRYNmbTMw3HAGsLNxB1k3v0AReFSyUO7Zdzqc8jPns9OjAAQXoh2QGcKnuYjPbxNoJTsthlBwhapS/9pXAtLdgjIy+7orxF7aUC0Gg5jk6zqWfsoo54Eu93M26fTl6eRPRDLjm0Xit0JambN04k9QyIX9LiMGoSewNmw1wEj2HiSH/Ts=xiaojing@DESKTOP-9IGE82Ncopy本地的秘钥,直接echo到authorized_keys文件,但是要注意,有两个箭头,这是一个continuation。要是少了一个箭头,比如把这个文件原来的数据覆盖掉,估计你要吃一顿饭了。$echo'ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABgQC90tsEOp9oL+iprQ3ig0y8pcpssR18zxCiD19YvkiL3Y3i9Rg6Kwh48wFy+rjhRbyxeMse2U12nGsLh4mEcEXp7uELXlzSwVKxmJ7JBvuiV/B90Cumf03EwALcsdODIY3z2CwLhc0EAd52xsILXsdFGZDoTcvwzlZ1SZC3SgmfFHnkh6QknWZSAt2pwIl/h2t4jG98X6EraEpmynKHQfbnPIFI7U5T3rNjbSp4WkAff39d8teGqCLk4k7KxC6ngFBIz/itGG/W4X2auW85KV7u/Ptp/BeP25zC2LLqvdZoEkJz0GOM50XLdekQV3lbeh4Zy47AuiwF6ooOhqENRYNmbTMw3HAGsLNxB1k3v0AReFSyUO7Zdzqc8jPns9OjAAQXoh2QGcKnuYjPbxNoJTsthlBwhapS/9pXAtLdgjIy+7orxF7aUC0Gg5jk6zqWfsoo54Eu93M26fTl6eRPRDLjm0Xit0JambN04k9QyIX9LiMGoSewNmw1wEj2HiSH/Ts=xiaojing@DESKTOP-9IGE82N'>>/home/xj/.ssh/authorized_keys测试现在就可以使用xj_xiaojin文件连接$ssh-ixjdemo_xiaojinxj@172.25.1.230或将xj_xiaojin重命名为xj_xiaojin.pem$ssh-ixj_xiaojin.pemxj@172.25.1.230是更优化的方式,直接ssh即可,不需要密码sshxj@172.25.1.230禁用密码连接注意:要确保.pem连接成功,请禁用密码连接$sudovi/etc/ssh/sshd_config找到这一行#PasswordAuthenticationyes#更改为no以禁用隧道明文密码#帕斯swordAuthenticationyes取消前面的#注释,改成PasswordAuthenticationno重启ssh服务$sudoservicesshrestart好了,教程到此结束ServerplanAdduserroot@xjTEST:~/.ssh#adduserkingAddinguser`king'。..添加新组“king”(1001)...添加新用户“king”(1001)和组“king”...创建主目录“/home/king”...从“/etc/”复制文件skel'...Newpassword:Retypenewpassword:passwd:passwordupdatedsuccessfullyChangingtheuserinformationforkingEnterthenewvalue,orpressENTERforthedefaultFullName[]:RoomNumber[]:WorkPhone[]:家庭电话[]:其他[]:信息是否正确?[Y/n]Yroot@xjTEST:~/.ssh#授予root权限$chmod700/etc/sudoers$vi/etc/sudoers#用户权限说明rootALL=(ALL:ALL下加王)ALLALL=(ALL:ALL)ALL$chmod400/etc/sudoers生成密钥对root@xjTEST:~/.ssh#cd/home/king/root@xjTEST:/home/king#mkdir.sshroot@xjTEST:/home/king#cd.ssh/root@xjTEST:/home/king/.ssh#ssh-keygenGeneratingpublic/privatersakeypair.Enterfilewhichtosavethekey(/root/.ssh/id_rsa):king_8.134.210.33.pemEnterpassphrase(emptyfornopassphrase):Entersamepassphraseagain:你的身份已被savedinking_8.134.210.33.pem你的公钥已经保存在king_8.134.210.33.pem.pub密钥指纹为:SHA256:mAa0TRY+kECFCqU6nPfunpWeiRAStvIXnw3dqVz1iS8root@xjTEST密钥的Arandomart为:2---+|o+++.+。||.....B||o+o+。||=+。=。哦哦。||+=哦。=小号+。o||.ooo+=。哦。||....oo+E。||.o=o。||o*+|+----[SHA256]-----+root@xjTEST:/home/king/.ssh#lsking_8.134.210.33.pemking_8.134.210.33.pem.pub服务器认证证书根@xjTEST:/home/king/.ssh#catking_8.134.210.33.pem.pub>>authorized_keys客户端登录和私钥传给客户端,放在~/.ssh目录下xiaojin@xiaojin-PC:~/.ssh$ssh-i~/.ssh/king_8.134.210.33.pemking@8.134.210.33好了教程到此结束
