1、说明:

        1、ssh:Secure Shell (SSH) 是一个允许两台电脑之间通过安全的连接进行数据交换的网络协议。SSH采用公钥加密技术来验证远程主机,以及(必要时)允许远程主机验证用户。

        2、与telnet和sftp的区别:FTP、Telnet是再网络中明文传送数据、用户帐号和密码。使用SSH, 你可以把所有传输的数据进行加密, 而且也能够防止DNS和IP欺骗。 2》第二个好处是:传输的数据是经过压缩的,所以可以加快传输的速度。

        3、解密方式: SSH利用SSH Key来进行前面提到的基于密钥的安全验证。

        4、生成的公钥应该放置在当前用户目录中,否则不生效。 不同用户可以拥有不同的公钥文件

2、实现方式:在linux环境下实现公钥、私钥的生成

        1、认证方式: rsa、dsa

        2、在指定用户的根目录下,及用户家目录: ~/

        3、查看是否有ssh-key: ls -al  ~/.ssh

        4、如果有,可以删除目录 rm -rf  ~/.ssh,建议删除之前备份该目录

        5、生成新的ssh-key

        6、执行: ssh-keygen -t rsa -C "邮箱地址用于公钥备注"

                第一次提示输入文件名称: 可以忽略

                第二次提示输入密钥:

                第三次确认密钥

               密钥在登录的时候会用到

        7、在~/.ssh/目录下生成: id_rsa 私钥文件 和is_ras.pub 公钥文件

        8、常用命令:

                

-b:指定密钥长度;
-e:读取openssh的私钥或者公钥文件;
-C:添加注释;
-f:指定用来保存密钥的文件名;
-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
-l:显示公钥文件的指纹数据;
-N:提供一个新密语;
-P:提供(旧)密语;
-q:静默模式;
-t:指定要创建的密钥类型。

       

3、配置使用:

        1、修改sshd配置文件(/etc/ssh/sshd_config): 可以使用密钥免密登录配置

并去掉注释符”#“
=========================
  RSAAuthentication yes
  PubkeyAuthentication yes
  AuthorizedKeysFile  .ssh/authorized_keys
=========================

        2、配置authorized_keys文件. 将公钥内容进行拷贝进去

若’~/.ssh/authorized_keys’不存在,则建立.ssh文件夹和authorized_keys文件. 将上文中客户机id_rsa.pub的内容拷贝到authorized_keys中. 注意: 1) .ssh目录的权限必须是700 2) .ssh/authorized_keys文件权限必须是600。

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

        3、重启sshd 服务: 不同linux系统命令不同

                /etc/init.d/sshd restart 

                或者

                service sshd restart

                 systemctl restart sshd.service

4、只允许密钥登录:为了服务器主机安全,需要设定密钥登录,并且指定 root 不可远程登录。

/etc/ssh/ssh_config 配置文件中修改

        禁止 root 远程登录: PermitRootLogin yes # 禁止 root 远程登录

        关闭密码登陆方式:

                PasswordAuthentication no

                ChallengeResponseAuthentication no

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐