生成密钥,配置ssh密钥登录

登录流程

密钥登录比密码登录安全,主要是因为他使用了非对称加密,登录过程中需要用到密钥对。整个登录流程如下:

  1. 远程服务器持有公钥,当有用户进行登录,服务器就会随机生成一串字符串,然后发送给正在进行登录的用户。
  2. 用户收到远程服务器发来的字符串,使用与远程服务器公钥配对的私钥对字符串进行加密,再发送给远程服务器。
  3. 服务器使用公钥对用户发来的加密字符串进行解密,得到的解密字符串如果与第一步中发送给客户端的随机字符串一样,那么判断为登录成功。

配置密钥可使用户免密ssh方式登录服务器。

第一步:生成密钥

ssh-keygen -t rsa -C "youremail@qq.com"
引号内的email改为你自己的,一路回车保持默认,就可以生成。

查看生成的公钥和私钥:
ls ~/.ssh
可以看到两个密钥文件:id_rsa(私钥)、id_rsa.pub(公钥)

第二步:在服务器安装公钥

手动拷贝id_rsa.pub到服务器,并追加到authorized_keys文件内

cat id_rsa.pub >> ~/.ssh/authorized_keys
或者用命令:
scp ~/.ssh/id_rsa.pub root@192.168.x.x:/root/.ssh/authorized_keys

1、设置权限

对服务器的authorized_keys文件和.ssh目录赋予权限;权限过大,ssh会禁止登录。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

2、测试免密登录

方式一ssh root@192.168.x.x
方式二ssh -l root 192.168.x.x
如果不需要密码直接登录,说明配置成功,可以跳过以下步骤。

3、设置ssh,打开密钥登录功能

编辑/etc/ssh/sshd_config文件,修改保存,重启sshd服务。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

其他配置项,根据需要修改:
允许root用登录PermitRootLogin yes
允许密码登录PasswordAuthentication yes

最后修改:2021 年 06 月 25 日 11 : 11 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论