Centos设置秘钥登录

没落的情绪 2023-05-10 PM 1089℃ 0条

检查密钥文件是否存在

ls -l ~/.ssh/id_*.pub

如果命令返回类似No such file or directory或no matches found的信息,则表明当前用户没有SSH密钥。
打开电脑CMD窗口,使用ssh-keygen生成SSH密钥

  • 不使用任何参数直接生成SSH私钥与公钥

    ssh-keygen

  • 使用您的电子邮件地址作为注释来生成新的4096位SSH密钥对

    ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

系统将提示您指定文件名Enter file in which to save the key (/home/myfreax/.ssh/id_rsa):,直接回车就行,或者设置你想要的位置

接下来,系统会要求您输入安全密码或者称为密码短语Enter passphrase (empty for no passphrase):。密码短语增加了一层额外的安全性。不设置直接按回车就行,要是设置了则登录的时候要选择秘钥同事还要输入密码短语

再接下来会提示输入确认密码,如果没有设置密码就直接回车就行

要验证是否生成了新的SSH密钥对,请运行命令ls ~/.ssh/id_*查看SSH密钥是否存在

/home/myfreax/.ssh/id_rsa 
/home/myfreax/.ssh/id_rsa.pub

现在您本地计算机有了SSH密钥,下一步是将公用密钥复制到要管理的远程服务器
将公钥复制到服务器的最简单和建议的方法是使用ssh-copy-id命令。运行命令ssh-copy-id server_username@server_ip_address即可复制远程服务器

ssh-copy-id server_username@server_ip_address

server_username是远程服务器用户的名称,server_ip_address是你的服务器IP地址。系统将提示您输入远程用户密码。

通过身份验证后,公钥~/.ssh/id_rsa.pub将追加到远程用户~/.ssh/authorized_keys文件中,然后ssh-copy-id将会退出。

并且提示你可以运行命令ssh 'username@server_ip_address'登录到远程服务器。

完成上述步骤后,您应该能够免密码登录到远程服务器。要测试它,请尝试通过SSH登录到服务器。
如果您尚未设置私钥的密码短语,则会立即登录。 否则,将提示您输入密码

禁用SSH密码身份验证
禁用密码身份验证会为服务器增加一层安全保护。在禁用SSH密码身份验证之前,请确保您可以免密码登录服务器,并且你登录用户具sudo权限。
登录远程服务器,并编辑/etc/ssh/sshd_config文件

vi /etc/ssh/sshd_config

搜索PasswordAuthentication,ChallengeResponseAuthentication,UsePAM并改成no
执行上面的指令后不要按i 直接输入/要搜索的内容,可以搜索文本内容

/PasswordAuthentication

将其改为no
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
完成后,按Esc键,然后输入;wq保存文件并运行命令sudo systemctl restart sshd重新启动SSH服务。此时,基于密码的身份验证已被禁用,你将不能使用密码登录。

标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~