梗概:

  • 使用证书登陆,可以减少密码的使用,避免密码泄露,证书登陆更加方便、安全。
  • Secure CRT 和Putty 原理相同,生成 密钥对(Key pair)操作有所不同。

1、生成key pair, 先以SecureCRT 为例

密钥类型有RSA 和 DSA两种,sshd_config里面两种都支持,一般选用RSA.

长度512-2048位任选。

通行短语:这个地方类似是一条口令,在建立Session的时候会要求输入,个人觉得没必要填写,填了相当于在证书登陆的过程中又加入了密码这种东西。

注释:随便填,可以作为一段描述,这段内容会在私钥的内容里可以看到。

2、生成密钥对后,保存公钥和私钥到本地。私钥会自动应用于全局变量,也可以手动添加。

公钥:Identity.pub

私钥:Identity

客户端配置完毕。

3、将公钥 identity.pub 上传至服务器上的用户目录 ~/.ssh/authorized_keys ,名字随意,和sshd_config里配置文件一致即可。

mkdir .ssh  #在需要开启ssh连接的用户目录下建立 .ssh目录,不存在的话就自己创建。

chmod 700 .ssh

上传的方式有多种

1)如果是虚拟机,直接拽入或者通过share folder。

2)FTP ,事先要搭建好FTP服务器如vsftpd. 可以使用命令行方式+第三方工具。

3)Samba ,如前文描述。

4)SFTP(Secure FTP), SFTP是基于SSH 协议的,SecureCRT自带,连接后使用和FTP一样,命令行+第三方工具(FileZilla/Winscp)

PS1:FTP和SFTP都是文件传输协议,FTP默认端口是23,SFTP基于SSH,默认端口和SSH一样是22. SFTP是加密的文件传输,比FTP安全。

考虑到SSH证书登陆并没有完成, 可以暂时允许SSH用密码登陆进去建立一个会话,然后把公钥上传上去。

ls 列出服务器当前目录 ,cd 切换目录

lls 列出本地当前目录 ,lcd 切换本地当前目录

put 上传至服务器,get 下载至本地,所以我们使用put identity.pub即可。
PS2 :由于我们的SSH使用的是OpenSSH ,低版本CRT不支持在本地导出openssh格式,可先上传至服务器然后使用ssh-keygen转换。

#ssh-keygen -i -f Identity.pub >>~/.ssh/authorized_keys #这个地方用>>追加符号,因为这个文件里可能存在两个不同的公钥,比如我下文用putty生成的pair key.

#chmod 644 .ssh/authorized_keys

4、更改ssh配置文件
vim /etc/ssh/sshd_config        #修改ssh配置文件,需要root权限
PermitRootLogin no                       #禁止root登录
PubkeyAuthentication yes                  #启用公告密钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #这个地方名字保持一致即可
RSAAuthentication yes                    #允许RSA密钥
PasswordAuthentication no               #禁止密码验证登录,如果启用的话,OpenSSH的RSA认证登录就没有意义了

保存后重启ssh 服务

# service ssh restart

5、验证登陆

用户名就是你存放公钥的用户,身份验证的地方口令不选。

连接过程如果在1填了口令,会让你输入口令;没有口令的话,应该很快很自动连上。

Putty部分主要是Key pair这部分生成的步骤略有不同,其他都是一样的,不再赘述。

最后对密钥登陆过程中一些细节的回顾。

SecureCRT 和 putty使用同样的加密算法,但在生成key pair的格式上有所不同。

1、先看看公钥:1 (OpenSSH 格式)

再看看私钥:2.ppk

私钥内容上:Public+Private组成。

2、再来看看securecrt

这时候的公钥还是VAN DYKE格式,在服务器上用命令转为OpenSSH格式后,authorized_keys内容如下:

上面的是putty的公钥,下面是securecrt的公钥,服务器上是可以存放多个公钥的,如果再有一对key pair,直接往authorized_keys里面继续添加这段随机码即可,转不转成openssh格式倒是无所谓。

参考链接:

http://www.ssc.wisc.edu/sscc/pubs/linstat_public_key.htm

http://blog.chinaunix.net/uid-20639775-id-3207171.html

http://blog.csdn.net/zhaohaifan/article/details/8051694

配置key认证登陆Ubuntu (下)的更多相关文章

  1. 配置key认证登陆Ubuntu (上)

    每一个看似轻松的结果背后都有不为人知的辛酸.又是一件小事,结果折腾了一天. 上接配置好SSH 和Samba后,开始了Python编程实践.由于实在不大会用Vim, 所以最后的编程环境实际上在Windo ...

  2. linux SecureCRT ssh key认证登陆

    转自:http://blog.chinaunix.net/uid-20639775-id-3207171.html 通过SecureCRT创建key登录认证 一.生成公钥/密钥对 使用SecureCR ...

  3. ubuntu下apache2 安装 配置 卸载 CGI设置 SSL设置

    一.安装.卸载apache2      apache2可直接用命令安装           sudo apt-get install apache2      卸载比较麻烦,必须卸干净,否则会影响ap ...

  4. ubuntu下java JDK环境配置

    ubuntu下配置JDK环境变量ubuntu下的JDK配置本质上和win一样的:1.去官网下载JDK,选择适合自己版本,我下载的版本是jdk-8u121-linunx-x64.tag.gz,官方网址h ...

  5. ubuntu下配置JDK7环境变量

    ubuntu下JDK配置本质上和win是一样的: 1.去官网下载JDK7,找jdk-7u21-linux-i586.tar.gz并下载:http://www.oracle.com/technetwor ...

  6. Ubuntu下使用git提交代码至GitHub

    一.Ubuntu下安装Git Ubuntu12.04 LTS默认是已经安装Git的,可以使用 git --version 测试是否安装. 如果没有安装,使用命令: sudo apt-get insta ...

  7. windows、ubuntu下eclipse搭建java、Python环境问题总结

    前两篇博文分别讲述了如何在windows.ubuntu下用eclipse搭建java.python环境,下面就针对本人遇到的问题做一个总结. 一.windows下关于java环境变量JAVA_HOME ...

  8. Ubuntu下Zabbix安装及使用问题

    1.configure: error: MySQL library not found MySQL library not found root@kallen:~# apt-get install l ...

  9. Ubuntu下SSH无密码验证配置

    前言 SSH为Secure Shell 的缩写,是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.越来越多的小伙伴们使用远程登录,而ssh安全性无疑是很高的,那么我们现在来看看如何实现ss ...

随机推荐

  1. s​h​e​l​l​中​条​件​判​断​i​f​中​的​-​z​到​-​d​

    shell中条件判断if中的-z到-d的意思 2011-09-05 10:30 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为 ...

  2. 使用swagger作为restful api的doc文档生成——从源码中去提取restful URL接口描述文档

    初衷 记得以前写接口,写完后会整理一份API接口文档,而文档的格式如果没有具体要求的话,最终展示的文档则完全决定于开发者的心情.也许多点,也许少点.甚至,接口总是需要适应新需求的,修改了,增加了,这份 ...

  3. Cassandra 数据模型设计,根据你的查询来制定设计——反范式设计本质:空间换时间

    转自:http://www.infoq.com/cn/articles/best-practice-of-cassandra-data-model-design 不要把Cassandra model想 ...

  4. 《Drools7.0.0.Final规则引擎教程》第3章 3.2 KIE概念&FACT对象

    3.2.1 什么是KIE KIE(Knowledge Is Everything),知识就是一切的简称.JBoss一系列项目的总称,在<Drools使用概述>章节已经介绍了KIE包含的大部 ...

  5. Lua基础---流程控制语句

    Lua提供了if语句和if else语句作为流程控制语句,当然,符合C的特点,流程语句之间可以实现嵌套操作,当然流程控制也可以和循环体结合进行控制. 1.if语句 if(布尔表达式) then --[ ...

  6. angularJs 模拟jQuery中的this

    在angularJs中,this指向$scope!可以$event配合使用$(event.target)实现,代码如下: HTML部分: <p ng-click="testClick( ...

  7. POJ1287 Networking

    解题思路:Kruskal模板题,重复输入的情况,本题是无向图. 见代码: #include<cstdio> #include<algorithm> #include<cs ...

  8. PTA L3-023 计算图 (dfs+数学推导)

    “计算图”(computational graph)是现代深度学习系统的基础执行引擎,提供了一种表示任意数学表达式的方法,例如用有向无环图表示的神经网络. 图中的节点表示基本操作或输入变量,边表示节点 ...

  9. HDU - 6241 :Color a Tree(不错的二分)

    Bob intends to color the nodes of a tree with a pen. The tree consists of NN nodes. These nodes are ...

  10. 1.2 java web的发展历史

    前言 了解java web的发展历史和相关技术的演进历程,非常有助于加深对java web技术的理解和认识. 阅读目录 1.Servlet的出现 2.Jsp的出现 3.倡导了MVC思想的Servlet ...