一、前言

1. 环境

  • 客户端系统:win7
  • securecrt版本:6.0.2
  • 服务端系统:centos6.5
  • 服务端ssh实现:openssh

2. 关于认证方式

我们知道ssh一般都会提供多种客户端认证方式,其中最常用的是密码和公钥认证方式,本篇主要讨论公钥认证方式。有关客户端认证的过程与原理,可以看另一篇文章:ssh的发展历程与基本原理

二、使用公钥认证登陆的优点

1、公钥认证允许使用空密码,省去每次登录都需要输入密码的麻烦

2、多用户管理服务器时,可以通过多个公钥登录同一用户下,可以避免因为密码认证被用户都需要密码,导致的密码容易泄密的危险。并且使用passwd修改密码,也不会影响到其他用户的登录。

3、做空密码的公钥认证,为运维自动化提供了便捷方法。

三、生成公钥和私钥

以下是使用securecrt生成公钥和私钥的主要步骤,不用修改的界面就不放出来了,直接点下一步就是了。

选择公钥的类型为RSA:

因为我们不想输入通行密码,所以密码直接留空,注释框写上自己想标注的内容就行了:

到了这一步,就是生成公钥的时候了,注意框出来的内容,securecrt在生成公钥的时候会根据鼠标的移动数据作为随机的因素去生成,如果你到了这个界面切到别的地方去了,可能回来的时候发现进度条还没动过。

key的格式选OpenSSH,完成。

生成有两个文件,一个公钥文件(Identity.pub)一个私钥文件(Identity),需要把Identity.pub的内容追加到服务器的文件~/.ssh/authroized_keys中,如果.ssh目录不存在,就创建一个:

mkdir ~/.ssh
chmod ~/.ssh
touch ~/.ssh/authroized_keys
chmod ~/.ssh/authroized_keys

注意:.ssh 目录的权限必须是0700,.ssh/authorized_keys 文件权限必须是0600,否则公钥认证不会生效。

四、服务端设置

我们想达成的目的有:

  • 让客户端免密登陆
  • 禁止客户端密码登陆
  • 修改默认端口,避免外部攻击

1. 修改配置文件/etc/ssh/sshd_config

Port
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no

2. 重启sshd服务

service sshd restart

3. 如果有开防火墙,还需要修改防火墙配置

打开防火墙配置文件/etc/sysconfig/iptables,找到原来22端口的配置:

-A INPUT -p tcp -m state --state NEW -m tcp --dport  -j ACCEPT

把22改成你想要改成的端口,这里是1357,修改完保存配置并重启防火墙。

service iptables restart

关于iptables的原理和基本用法,有兴趣可以看看另外一篇:深入浅出iptables

五、登陆服务器

建立连接,把公钥选项提前,并去掉密码登陆选项,然后点开公钥的属性选项。

选择使用会话公钥设置,然后选择自己的私钥文件,ok。

如果是第一次连接,会提示你去辨别是否接受这个新的host key,选接受并保存。

然后就可以直接登陆服务器了。

六、总结及注意

本文主要简述从securecrt生成公钥/密钥到免密登陆服务器的过程,总体来说比较简单。

不过有的细节不注意就可能导致失败,譬如:

  • 客户端和服务端的ssh版本对不上
  • 生成key的类型不对
  • 服务端.ssh目录或者授权文件的权限不对
  • 服务器sshd配置修改错误或者修改完没有重启sshd服务
  • 防火墙配置没有修改,或者没有重启防火墙

七、参考

1. ssh 公钥认证方式登录

2. ssh配置公钥私钥登录SecureCRT

(完)

securecrt免密码登录的更多相关文章

  1. ssh免密码登录、secureCRT免密码登录详解

    再放一张真机实现图: 接下来就详细讲述实现细节. 实现过程中吃了不少苦头,这个不对,那个不通.好在慢慢一点点摸索出来了,经验分享在这里. 希望能终结网上ssh免密码登录,以及SecureCRT免密码登 ...

  2. Ubuntu使用ssh公钥实现免密码登录

    ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以Ubuntu为例. 有机器A(10.0.2.1),B(10.0.2.100).现想A通过ssh免密 ...

  3. Linux使用ssh公钥实现免密码登录Linux

    ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例.有机器A(192.168.1.155),B(192.168.1.181).现想A ...

  4. ssh免密码登录机器(使用公钥和秘钥进行加密来实现)

    ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 登录的原理: 有机器A(192.168.1.155),B(192.168.1. ...

  5. ssh配置免密码登录

    日常工作中很多情况下都需要登录服务器进行管理,一般都是用ssh进行连接,为了防止密码外泄,可以配置下ssh的免密码登录. 首先服务器两台: A:43.224.34.* B:104.238.161.* ...

  6. CentOS配置SSH免密码登录后,仍提示输入密码

    CentOS配置SSH无密码登录需要3步: 生成公钥和私钥 导入公钥到认证文件,更改权限 测试 1.生成公钥和私钥 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 默 ...

  7. ssh 免密码登录

    1.在本机下生成公钥/私钥对. ssh-keygen -t rsa -P '' -P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车.它在/home/yaoy ...

  8. Mac下到Linux主机ssh免密码登录

    最近忙得忘乎所以,写篇博客放松放松,RT,直接上命令好了 # Local ssh-keygen -t rsa scp ~/.ssh/id_rsa.pub username@server:~/.ssh/ ...

  9. 如何配置ssh免密码登录

    [TOC] 如果你在管理一堆unix机器,每次登录都要输入密码是挺烦的事情,一方面为了安全我们一般不会将所有机器的密码都设置成一样,另一方面就算一样每次都输入一遍也很麻烦. 这种情况下我们一般是用ss ...

随机推荐

  1. Unit01: Ajax介绍

    Unit01: Ajax 1. ajax是什么? (asynchronous javascript and xml) ajax是一种用来改善用户体验的技术,本质是利用浏览器提供的一个 特殊对象(XML ...

  2. c#实现QQ群成员列表导出及邮件群发之邮件群发

    主题已迁移至:http://atiblogs.com/ ITO-神奇的程序员

  3. [Java.Web]从零开始布署 Tomcat

    1. 下载 JRE 1.7 2. 下载 Tomcat 7.0.77,我使用的是红圈的压缩包版本,也可以使用绿圈的安装包版本[更省心] 3. 加入环境变量 JRE_HOME .CATALINA_HOME ...

  4. 在CentOS 7中使用VS Code编译调试C++项目

    1. 安装VSCODE 见VSCode官方链接 https://code.visualstudio.com/docs/setup/linux#_rhel-fedora-and-centos-based ...

  5. View.findViewById()和Activity.findViewById()区别

    在网上看见View.findViewById() 和 Activity.findViewById()执行效率不一样 使用Activity.findViewById()如: TextView tv_in ...

  6. Ceph添加/删除Mon(ceph.conf)

    操作环境 ceph 0.87.7 Openstack liberty ubuntu 14.04 当前ceph配置文件如下 [global]fsid = c010eb34-ccc6-458d-9a03- ...

  7. Angular.js中处理页面闪烁的方法详解

    Angular.js中处理页面闪烁的方法详解 前言 大家在使用{{}}绑定数据的时候,页面加载会出现满屏尽是{{xxx}}的情况.数据还没响应,但页面已经渲染了.这是因为浏览器和angularjs渲染 ...

  8. java 红包规则

    java 红包规则 拼手气红包: 规则:最大金额:全部金额/个数*倍数 最小金额:0.01 最后一个红包是全部金额-领取金额 随机分配 package com.utils; import java.m ...

  9. redis存session问题测试内容

    转至元数据起始   官网,现网由于是双节点,session是存储在redis作为共享的. +1是单节点.目前是存储成文件的 本次的问题根源是 由于 session是存储在redis,所造成的. 所以需 ...

  10. Python实践练习目录

    缘由 做中学才是最好的方法,通过这些项目来加强自己的Python掌握程度. 原则 成体系地学,不搞"题海战术" 通所有不如精一物,精一物方可通所有 走心学,忌浮躁 项目列表 字符串 ...