前言

本文基于实际Linux管理工作,实例讲解工作中使用ssh证书登录的实际流程,讲解ssh证书登录的配置原理,基于配置原理,解决实际工作中,windows下使用SecureCRT证书登录的各种问题,以及实现hadoop集群部署要求的无密码跳转问题。

ssh有密码登录和证书登录,初学者都喜欢用密码登录,甚至是root账户登录,密码是123456。但是在实际工作中,尤其是互联网公司,基本都是证书登录的。内网的机器有可能是通过密码登录的,但在外网的机器,如果是密码登录,很容易受到攻击,真正的生产环境中,ssh登录都是证书登录。

证书登录的步骤

1.客户端生成证书:私钥和公钥,然后私钥放在客户端,妥当保存,一般为了安全,访问有黑客拷贝客户端的私钥,客户端在生成私钥时,会设置一个密码,以后每次登录ssh服务器时,客户端都要输入密码解开私钥(如果工作中,你使用了一个没有密码的私钥,有一天服务器被黑了,你是跳到黄河都洗不清)。

2.服务器添加信用公钥:把客户端生成的公钥,上传到ssh服务器,添加到指定的文件中,这样,就完成ssh证书登录的配置了。

假设客户端想通过私钥要登录其他ssh服务器,同理,可以把公钥上传到其他ssh服务器。

真实的工作中: 员工生成好私钥和公钥(千万要记得设置私钥密码),然后把公钥发给运维人员,运维人员会登记你的公钥,为你开通一台或者多台服务器的权限,然后员工就可以通过一个私钥,登录他有权限的服务器做系统维护等工作,所以,员工是有责任保护他的私钥的,如果被别人恶意拷贝,你又没有设置私钥密码,那么,服务器就全完了,员工也可以放长假了。

客户端建立私钥和公钥

在客户端终端运行命令

1
ssh-keygen -t rsa

rsa是一种密码算法,还有一种是dsa,证书登录常用的是rsa。

假设用户是blue,执行 ssh-keygen 时,才会在我的home目录底下的 .ssh/ 这个目录里面产生所需要的两把 Keys ,分别是私钥 (id_rsa) 与公钥 (id_rsa.pub)。

另外就是私钥的密码了,如果不是测试,不是要求无密码ssh,那么对于passphrase,不能输入空(直接回车),要妥当想一个有特殊字符的密码。

ssh服务端配置

ssh服务器配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vim /etc/ssh/sshd_config
#禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no # 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no # 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile ~/.ssh/authorized_keys #有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no

配置好ssh服务器的配置了,那么我们就要把客户端的公钥上传到服务器端,然后把客户端的公钥添加到authorized_keys

在客户端执行命令

1
2
#scp 端口-P P需要大写
scp -P 28223 ~/.ssh/id_rsa.pub blue@<ssh_server_ip>:~

在服务端执行命令

1
2
3
cat  id_rsa.pub >> ~/.ssh/authorized_keys
#并修改权限
chmod 600 ~/.ssh/authorized_keys

如果有修改配置/etc/ssh/sshd_config,需要重启ssh服务器

1
/etc/init.d/ssh restart

客户端通过私钥登录ssh服务器

ssh命令

1
ssh -i /blue/.ssh/id_rsa blue@<ssh_server_ip>

scp命令

1
scp -i /blue/.ssh/id_rsa filename blue@<ssh_server_ip>:/blue

每次敲命令,都要指定私钥,是一个很繁琐的事情,所以我们可以把私钥的路径加入ssh客户端的默认配置里

修改/etc/ssh/ssh_config

1
2
3
4
#其实默认id_rsa就已经加入私钥的路径了,这里只是示例而已
IdentityFile ~/.ssh/id_rsa
#如果有其他的私钥,还要再加入其他私钥的路径
IdentityFile ~/.ssh/blue_rsa

SSH配置私钥登陆服务器的更多相关文章

  1. ssh免密登陆服务器

    本文介绍的是以公钥认证的方式实现 ssh 免密码登陆远程服务器. 客户端生成RSA公钥和私钥 在用户更目录有一个 .ssh 的文件夹,如果没有就新建一个.在文件夹中通过命令 ssh-keygen -t ...

  2. SecureCRT 密钥生成 SSH 使用密钥登陆 服务器

    1.首先“Tool”-“Create Public Key” 2. 选择RSA 模式 4. 创建短语密码 5. 密钥长度为1024 6. 选择标准的 key  , 下面是生成的路径 二 . 配置 SS ...

  3. SSH私用私钥登陆

    1.导入私钥,将私钥文件放到当前登陆用户目录下的.ssh目录下 2.指定私钥登陆,ssh -i .ssh/ssh_rsa  root@target.com 如果出现了下面这种情况 这是因为私钥文件权限 ...

  4. 通过ssh实现远程登陆服务器!

    通过ssh实现远程登陆前提是服务器已经开启ssh服务,至于怎么开启,可以参看上一篇“Linux服务器开启ssh服务,实现ssh远程登陆!”! 使用ssh登陆时,输入主机(linux的ip地址),账号, ...

  5. SSH配置(同一服务器不同用户)

    一.cxwh用户ssh免密登陆至xtjk用户 1.cxwh用户执行 ssh-keygen -t rsa -N "" -f /home/cxwh/.ssh/id_rsa cp /ho ...

  6. 解决root用户ssh配置无密码登陆/hadoop用户照仿可以实现相同功能:hadoop用户登录并且把命令的所有root换成home/hadoop

    http://inuyasha1027.blog.51cto.com/4003695/1132896/ 主机ip:192.168.163.100(hostname: node0) ssh无密码登陆的远 ...

  7. SSH免密登陆原理及实现

    声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 一.SSH简介 SSH(Secure Shell)是一种通信加密协议,加密算法包括:RSA.DSA等. RSA:非对称加密算法,其安全性基于极其困难 ...

  8. (转)Linux SSH配置和禁止Root远程登陆设置

    原文 一.修改vi /etc/ssh/sshd_config 文件 1.修改默认端口:默认Port为22,并且已经注释掉了:修改是把注释去掉,并修改成其它的端口. 2.禁止root用户远程登陆:修改P ...

  9. ssh的配置,ssh打开密钥登陆,关闭密码登陆。

    刚装玩fedora,那么我们就以fedora为例来说一下怎么配置: 1.先确认是否已安装ssh服务: [root@localhost ~]# rpm -qa | grep openssh-server ...

随机推荐

  1. 构造器Constructor是否可被override?

    构造器Constructor是否可被override? 构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading.

  2. CCF真题之图像旋转

    201503-1 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可. 输入格式 ...

  3. cmd进入某个目录

    love you my pig java枚举类 cmd进入某个目录 2011-04-06 15:49:38| 分类: 小知识 | 标签: |字号大中小 订阅     1.开始->运行->C ...

  4. 夺命雷公狗---Thinkphp----1之目录介绍

    ThinkPHP框架 特点: 免费开源 敏捷开发(快速开发) 面向对象 MVC思想 yii,ci之类的框架都有这些特点.是06年到现在的一个老牌框架,现在还是个很不错的框架 可以在thinkphp的官 ...

  5. [php] 判断当前运行模式

    //判断是否cgi模式 define('IS_CGI',substr(PHP_SAPI, 0,3)=='cgi' ? 1 : 0 ); //判断操作系统是否为windows define('IS_WI ...

  6. 白盒测试的学习之路----(五)TestNG的参数分离

    之前的测试用例直接嵌套在代码中,不便于维护和测试设计,应该单独把测试用例放在excel内,然后程序从中读取数据到相应的接口内即可.使用ava程序对Microsoft Office格式档案读和写的功能提 ...

  7. html5,表格与框架综合布局

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  8. 【fedora】强制解除yum锁定

    运行yum makecache时出现yum update时候出现Another app is currently holding the yum lock解决方法yum被锁定了. 可以通过执行 rm ...

  9. opencv载入,显示及保存图像

    1.声明一个表示图像的变量,在OpenCV2中,这个变量是cv::Mat类型,该类是用于保存图像以及其他矩阵数据的数据结构.默认情况下它们的尺寸为0. cv::Mat  image;       // ...

  10. SQL学习记录

    一些最重要的 SQL 命令 SELECT - 从数据库中提取数据 UPDATE - 更新数据库中的数据 DELETE - 从数据库中删除数据 INSERT INTO - 向数据库中插入新数据 CREA ...