Linux学习笔记总结--ssh认证登录

原理简介


SSH证书认证登录的基础是一对唯一匹配密钥: 私钥(private key)和公钥(public key)。公钥用于对数据进行加密,而且只能用于加密。而私钥只能对使用所匹配的公钥,所加密过的数据进行解密。私钥需要用户单独妥善保管。SSH 客户端使用私钥向服务器证明自已的身份。而公钥是公开的,可以按需将其配置到目标服务器上自己的相应帐号中。

在进行 SSH 登录认证时,进行私钥和公钥协商。如果匹配,则身份得以证明,认证成功,允许登录。否则,将会继续使用密码验证等其它方式进行登录校验。

在 Linux 环境下,通常使用系统自带的 ssh-keygen 软件来创建和管理密钥对。请执行如下步骤创建密钥对:

  1. 以任意具有 ssh-keygen 执行权限的用户登录服务器。
  2. 使用如下指令,基于 rsa 算法创建密钥对:
    ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file inwhich to save the key (/root/.ssh/id_rsa):		        → 默认保存路径和文件名,可以按需修改。
    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:
    17:b8:0e:76:cb:57:21:3b:f2:bb:8b:a2:42:2b:54:be root@iZ233gr74jvZ
    The key's randomart image is:
    +--[ RSA 2048]----+
    |                 |
    |         .       |
    |        . o .    |
    |   .     . + .   |
    |  o   o S + .    |
    | ... . = = o     |
    |.. ..   + o      |
    |. oE  .  o .     |
    | . ... .. +o     |
    +-----------------+

    说明:

  • 如果 .ssh 目录不存在,程序会自动创建。

  • 生成的密钥对默认保存在当前用户家目录下的 .ssh 文件夹中,文件名默认为 id_rsa(私钥) 和 id_rsa.pub(公钥)。用户可以按需设置保存路径和文件名。

   3.ssh-copy-id  只能copy公钥

     ssh-copy-id -i .ssh/id_rsa.pub "-p 22 root@192.168.1.27"

     需要输入密码后,就能分发公钥了

  4.  验证:ssh root@192.168.1.27 /sbin/ifconfig eth0  查看ip

Windows 环境自动登录

Window 环境下,还是以常见的NetSarang Xshell为例,请执行如下配置进行自动登录:

  1. 单击 文件 > 属性,打开主机属性配置窗口。
  2. 点击 连接 > 用户身份验证,如下图所示,将 方法 设置为 Public Key;将 用户名 设置为已经设置了证书登录的相应用户名;将 用户密钥 设置为对应的私钥。最后,点击 确定。
  3. 这个时候,你已经有了一对密钥,需要开始设定服务器的配置,启用密钥认证登录,同时为了系统安全着想,关闭密码认证的方式

     vim /etc/ssh/sshd_config

    修改下面几处:

    PubkeyAuthentication  yes  #启用PublicKey认证。

    AuthorizedKeysFile       .ssh/authorized_keys  #PublicKey文件路径。

    PasswordAuthentication  no  #不适用密码认证登录。

  4. 上面配置完成后,需要重启sshd服务。
  5. 接着,在你需要的登录的用户家目录的.ssh目录下,编辑authorized_keys文件,将开始我们生成密钥对的公钥写到这个文件中。

    公钥查看方法:点击Xshell菜单的工具,选择用户密钥管理者,双击你刚刚生成的密钥打开属性,选择公钥,复制公钥的内容,稍后使用

  6. 注意:要添加多个用户,需要在这个文件后,换行,加入另一个公钥即可;
  7. 接着,修改该文件的权限,chmod 600 ,否则可能会遇到问题
  8. 至此,登录测试
原文地址:https://www.cnblogs.com/taiguyiba/p/6038890.html