zoukankan      html  css  js  c++  java
  • Linux下SSH配合SecureCRT的密匙完美使用方法(图)

    我想肯定有不少朋友在使用SecureCRT做为SSH的客户端软件,但都很少使用他的RSA/DSA加密功能吧,怎么你还不知道RSA是什么?
    SSH,特别是 OpenSSH,是一个类似于 telnet 或 rsh,ssh 客户程序也可以用于登录到远程机器。所要求的只是该远程机器正在运行 sshd,即 ssh 服务器进程。但是,与 telnet 不同的是,ssh 协议非常安全。加密数据流,确保数据流的完整性,甚至安全可靠的进行认证它都使用了专门的算法。
      然而,虽然 ssh 的确很棒,但还是有一个 ssh 功能组件常常被忽略、这个组件就是 OpenSSH 的 RSA/DSA 密钥认证系统,它可以代替 OpenSSH 缺省使用的标准安全密码认证系统。
    OpenSSH 的 RSA 和 DSA 认证协议的基础是一对专门生成的密钥,分别叫做专用密钥和公用密钥。使用这些基于密钥的认证系统的优势在于:在许多情况下,有可能不必手工输入密码就能建立起安全的连接。
      好了知道RSA和DSA是怎么回事了吧,至于里面的原理我就不讲了,有兴趣的朋友去看看公匙密匙的原理就行。其实不止SecureCRT支持RSA/DSA,其他ssh的客户端软件都支持类似的RSA/DSA,只不过好像不同软件产生的公匙密匙好像不通用。我这里只是拿最典型的SecureCRT来说明RSA怎么使用来配合linux下的ssh服务。
      我的环境:Redhat9.0 openssh-3.5p1-6 SecureCRT 4.0
      服务端openssh我们先不可以设置,等客户端设置好后,我们再回过头来设置ssh。
      我们创建一个新链接,点击属性:
    clip_image001
      默认验证方式是password,把他改成RSA,系统会弹出一个弹出框。
    clip_image002
      让你确认是否使用RSA公匙密匙创建向导,当然选“是”。
    clip_image003
      接着下一步:
    clip_image004
      这一步填入你的保护密匙的密码,这个密码要记住哦,以后都要这个密码,Comment就随便填了。
      下一步:
    clip_image005
      让你选择加密的位数,默认1024就行。
      下一步:
    clip_image006
      这一步你动一下鼠标,系统就会根据你鼠标动的频率自动产生公匙和密匙。
      下一步:
    clip_image007

    RSA公匙密匙创建好后,会让你保存,名字默认或者改名都行,后面大家只要注意SecureCRT只寻找密匙的路径,你保证SecureCRT能找到你的密匙就行。
      好了客户端的工作完成。下面是linux服务端的配置了。
      把我们刚才建立的RSA公匙传到你的服务器,默认名为identity.pub
      然后在linux下操作,如果你的密匙是给linux用户frank创建的,那么我们先在frank的宿主目录创建一个.ssh的目录。
    mkdir /home/frank/.ssh
    chmod o+x /home/frank
    chmod 700 /home/frank/.ssh
      然后把公匙导到authorized_keys这个文件,因为我们是使用ssh1,如果是ssh2的那就是authorized_keys2
    cat identity.pub > /home/frank/.ssh/authorized_keys
    chmod 644 /home/frank/.ssh/authorized_keys
      权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能,大家如果调试的过程中,发现有找不到公匙的错误提示,先看看权限是否设置正确哦!
    ok,现在服务器端也设置完毕了,你现在可以用SecureCRT的RSA验证方式连接ssh服务器端了,如果连接正常的话应该会弹出一个对话框,让你输入密码。
    clip_image008
      这里只要输入我们保护密匙的密码就行了,完了就能顺利进入。
      还有一步设置,既然大家都已经成功使用了ssh的RSA功能,那么就必须让openssh只支持RSA验证,否则既支持普通密码又支持RSA就没什么意思了,根本没把安全提高,所以我们有必要让openssh只支持RSA验证,如果还没有成功使用RSA功能的朋友就不用看,还是先把上面的的先实现再说。
      要实现openssh只支持RSA验证方式,我们只要修改
    vi /etc/ssh/sshd_config
      设置
    PasswordAuthentication no
      好了,你现在再试试以前普通密码验证方式,应该是会弹出下面错误信息。
    clip_image009
      大致意思服务器只支持RSA的验证方式,ok了。
      以后就可以用RSA的公匙密匙访问ssh服务器了,不过你的密匙可要保存好,反正我是保存在我的U盘,随身携带,一旦你的用户丢了密匙,一定在服务器端把它的公匙删除,这样即使那人获得了密匙也上不去。

    同样,可以在服务器端生成好了Key之后再传回客户端使用:

    因为是在服务器端生成的key,目录结构会一并建好,关键是权限问题不用担心,都是默认的。很简单,一看就懂:) Server端为solaris9自带的Open ssh
    bash-2.05# sshd -o
    sshd: option requires an argument -- o
    sshd version Sun_SSH_1.1
    Usage: sshd [options]

    在服务器上执行
    shell>ssh-keygen -b 1024 -t rsa
    passphrase可为空也可以指定,指定的话用key方法登录时还需验证passphrase
    生成两个文件id_rsa(私钥)和id_rsa.pub(公钥)
    shell>cd $HOME/.ssh
    shell>cat id_rsa.pub > authorized_keys
    如需要用多个pub key可以cat的时候直接追加,用>>
    把文件id_rsa和id_rsa.pub拷到本机,新建一个connect,把authentication的验证顺序中的PublicKey放到最先的位置。
    打开PublicKey验证的properties页,identity file选刚才从服务器上传下来的id_rsa,OK。登录就可以了。

    注:服务器上的id_rsa可删除,这样私钥就只有自己有了,只要分发公钥就可以登录远端的服务器了。

  • 相关阅读:
    Postman初探
    web页面和本地数据对比问题
    Katalon Recorder初探
    Flask入门
    自我实现预言
    gulp 安装 依赖
    maven环境
    加解密 生成 X.509格式,DER编码,后缀名.cer。加密公钥证书
    我的魔法 公式找回中
    gulp 自动ftp至服务器时,处理开发 测试服务器地址问题
  • 原文地址:https://www.cnblogs.com/me115/p/2060988.html
Copyright © 2011-2022 走看看