Linux服务器安全之用户密钥认证登录(基于CentOS 7.0系统)

一、 密钥简介
在Linux下,远程登录系统有两种认证方式:密码认证和密钥认证。密码认证方式是一种传统的安全策略。设置一个相对复杂的密码,对系统安全能起到一定的防护作用,但是也面临一些其他问题,例如密码暴力破解、密码泄露、密码丢失等,同时过于复杂的密码也会对运维工作造成一定的负担。
密钥认证是一种新型的认证方式,公用密钥存储在远程服务器上,专用密钥保存在本地,当需要登录系统时,通过本地专用密钥和远程服务器的公用密钥进行配对认证,如果认证成功,就可以成功登录系统。这种认证方式避免了被暴力破解的危险,同时只要保存在本地的专用密钥不被黑客盗用,攻击者一般无法通过密钥认证的方式进入系统。 
二、 服务器端密钥的生成和配置
OpenSSH的密钥认证体系有两种:RSA和DSA,分别是两种不同的加解密算法。T710服务器中管理员主要采用RSA密钥认证。用户在使用初始密钥登录后,可自行修改使用其他密钥认证方法。
服务器端RSA密钥的生成和配置步骤如下:
1.      在用户目录下新建一个.ssh目录,并将其目录权限改为700(仅用户自身有读写操作权限):
# mkdir .ssh
# chmod 700 .ssh
2.      进入.ssh目录,使用ssh-keygen命令生成rsa密钥对:
# ssh-keygen –t rsa  (一路回车即可)
3.      这时生成了两个文件:id_rsa和id_rsa.pub,其中前一个为私钥,后一个为公钥,公钥须保留在服务器上,私钥拷贝到客户端机器上
4.      在.ssh目录中新建一个文件名为:authorized_keys,将公钥内容拷贝到这个文件中,并将文件权限改为600(仅用户自身有读写权限)
# touch authorized_keys
# cat id_rsa.pub >> authorized_keys
# chmod 600 authorzied_keys
到此,服务器端的密钥设置完成,这里需注意要保证.ssh和authorized_keys都仅用户自身有写权限,否则验证无效,这也是系统处于安全性考虑做的设置。
三、客户端密钥的设置
首先我们需要将在服务器端生成的私钥id_rsa拷贝到要用来登录服务器的客户端电脑。接下来根据客户端电脑操作系统的不同进行分别说明:
Windows系统 
在Windows系统下,一般我们采用不同的X server工具来登录,需要先将私钥导入到登录工具的密钥管理器,建立一个新的连接,用户名和主机的填写与采用用户名密码登录一样,登录不再选择”Password”而是”Public key",User Name填写自己的登录用户名,User Key选择之前导入的服务器私钥 ,保存之后,即可无密码登录。
Linux系统
Linux系统下设置同样先将服务器私钥拷贝到客户端
1.      与服务器端一样,在用户目录下新建一个.ssh目录,并将其目录权限改为700(仅用户自身有读写操作权限):
       # mkdir .ssh
      # chmod 700 .ssh
2.      将私钥id_rsa拷贝到.ssh目录下,检查文件权限是否为600,如果不是,需要更改文件权限为600
      # mv  id_rsa  ./.ssh
      # chmod 600 id_rsa
3.      这时即设置完毕,输入ssh命令,即可直接连接到服务器,无需输入用户名密码
      # ssh –l 用户名 服务器IP
4.      如果需要从客户端通过密钥认证的方式登录不同的服务器,私钥的名称不能都是用id_rsa,这是可以在.ssh目录下建立一个config文件来进行区分,config文件权限同样设为600
      # touch config
      # chmod 600 config
5.      为config文件添加内容如下:
      User username      //username 填写自己的登录用户名
      Host server_IP   //设置服务器IP
      IdentityFile ~/.ssh/rsa_file   //rsa_file填写私钥名称
      Port 22
这样,用户可以将私钥id_rsa改为与config文件中irs_file同名的文件名,就可以匹配登录服务器了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576085.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Servlet 3.0 新特性详解

简介 Servlet 是 Java EE 规范体系的重要组成部分,也是 Java 开发人员必须具备的基础技能,Servlet 3.0 是 Servlet 规范的最新版本。本文主要介绍了 Servlet 3.0 引入的若干重要新特性,包括异步处理、新增的注解支持、可插性支持等等&#xf…

LAMP环境下配置虚拟主机和域名的跳转

一、配置虚拟主机 vim /usr/local/apache2/conf/extra/httpd-vhost.conf <VirtualHost *:80> ServerAdmin webmasterdummy-host.example.com root邮箱 DocumentRoot "/data/123"虚拟主机存在的目录 ServerName 123.com 配置的虚拟主机域名 …

linux下搭建nagios监控

一、什么是nagios 1.nagios 简介 Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务&#xff0c;同时提供异常通知功能等。Nagios可运行在Linux/Unix平台之上&#xff0c;同时提供一个可选的基于浏览器的WEB界面以方便系统管理人…

Coursera NLP 笔记02

找到一个很好的英语笔记&#xff0c;等有空了再整理第二章http://files.asimihsan.com/courses/nlp-coursera-2013/notes/nlp.html#the-trigram-estimation-problem转载于:https://www.cnblogs.com/bertrandwdx/archive/2013/03/04/2943437.html

zabbix yum安装

zabbix的单个Server节点可以支持上万台设备&#xff0c;每秒可以处理1.5万次请求&#xff0c;理论上可以支持5万台设备.zabbix 的使用可以分为三类用户&#xff1a;入门用户&#xff08;熟悉Zabbix的安装跟配置&#xff09;&#xff0c;中级用户&#xff08;熟悉LAMP和LNMP环境…

Oracle 索引概述

Oracle 提供了多种不同类型的索引以供使用。简单地说&#xff0c;Oracle 中包括如下索引&#xff1a;B*树索引&#xff1a;这些是我所说的“传统“索引。到目前为止&#xff0c;这是 Oracle 和大多数其他数据库中最常用的索引。B*树的构造类似于二叉树&#xff0c;能根据键提供…

zabbix的安装

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix由2部分构成&#xff0c;zabbixserver与可选组件zabbix agent。 一、Zabbix简介 1.1Zabbix简介   Zabbix是一个企业级的开源分布式监控解决方案&…

LinuxMySQL主从配置

mysql 主从配置-2主从 mysql 启动以后&#xff0c;我们来做一些配置。假设 3306 为主&#xff0c;3307 为从登陆 mysql 命令和参数/usr/local/mysql/bin/mysql登陆不同的 mysql 参数&#xff0c;可以 IP 也可以是 sockmysql -S /tmp/mysql.sock sock 登陆主mysql -h127.0.0.1 -…

通过udp及vlc传递视频流

可以通过两个host进行测试&#xff0c;如果是使用笔记本的摄像头进行测试&#xff0c;首先需要将当前用户添加到video组&#xff1a; sudo usermod -G video $user 发送方&#xff1a; vlc v4l2:// :v4l2-dev/dev/video0 :v4l2-width640 :v4l2-height480 --sout "#transco…

Linux主从复制

mysql主从复制 &#xff08;超简单&#xff09; 怎么安装mysql数据库&#xff0c;这里不说了&#xff0c;只说它的主从复制&#xff0c;步骤如下&#xff1a; 1、主从服务器分别作以下操作&#xff1a; 1.1、版本一致 1.2、初始化表&#xff0c;并在后台启动mysql 1.3、修…

对fgets的理解1

摘自《linux程序设计 中文第四版》第94页。 转载于:https://www.cnblogs.com/pengdonglin137/archive/2013/03/10/2952421.html

Linux 中mysql常用命令

测试环境&#xff1a; mysql5.0.45【注&#xff1a;可以在mysql中通过mysql> SELECT VERSION();来查看数据库版本】一、连接MYSQL。格式&#xff1a; mysql -h主机地址 -u用户名 &#xff0d;p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口&#xff0c;然后进入目录mysq…

java就业培训教程 第一章读书笔记

1.1 JVM和java的跨平台java的跨平台&#xff1a; java源程序经过编译->java字节码文件->由JVM执行其实对于java的跨平台的这个特性&#xff0c;刚开始不是很能理解&#xff0c;直到有一次&#xff0c;我把在ubuntu的java源文件弄到windows平台下&#xff0c;发觉好像不是…

mysql 查询某个字段SQL语句【mysql语句】

#查询某个字段为空的语句 SELECT * FROM passport WHERE passNickname IS NULL; 使用方法&#xff1a;SELECT * FROM 表名 WHERE 字段名 IS NULL; #查询某个字段不为空的语句 SELECT * FROM passport WHERE passNickname IS NOT NULL; 使用方法&#xff1a;SELECT * FROM…

NFS服务的搭建

服务器端1.安装依赖&#xff1a;1&#xff09;NFS的安装是非常简单的&#xff0c;只需要两个软件包即可&#xff0c;而且在通常情况下&#xff0c;是作为系统的默认包安装的。nfs -utils-* &#xff1a;包括基本的NFS命令与监控程序 portmap-* &#xff1a;支持安全NFS RPC服务…

qml学习文档-转载

importQtQuick1.0 /* 3.基本元素的介绍 基本可视化项 Item基本的项元素在QML中所有可视化的向都继承他 Rectangle基本的可视化矩形元素 Gradient定义一个两种颜色的渐变过程 GradientStop定义个颜色&#xff0c;被Gradient使用 Image在场景中使用位图 BorderImage(特殊的项)定义…

vsftpd的虚拟账户配置

1). yum -y install vsftpd db4-utils 2). 建立系统账号 useradd virftp -s /sbin/nologin 3). 建立虚拟账户 vim /etc/vsftpd/vsftpd_login test 1234567 4). 更改权限 chmod 600 /etc/vsftpd/vsftpd_login 5). 生成库文件密码 db_load -T -t h…

图片截剪

public class ImageUtil{#region " 正方型裁剪 "/// <summary> /// 正方型裁剪 /// 以图片中心为轴心&#xff0c;截取正方型&#xff0c;然后等比缩放 /// 用于头像处理 /// </summary> /// <param name"postedFile">原图HttpPoste…

普通用户的sudo权限,禁止root用户登录

假如增加用户zhangsan的sudo权限。 修改/etc/sudoers文件&#xff0c;在root下增加如下一行。 增加用户名zhangsan&#xff1a; 禁止root用户登录&#xff1a; 修改/etc/ssh/sshd_config文件&#xff0c; 将 PermitRootLogin前的#号去掉&#xff0c;yes改为no&#xff0c;重启n…

C语言system函数用法

system()函数用于向操作系统传递控制台命令行&#xff0c;以WINDOWS系统为例&#xff0c;通过system()函数执行命令和在DOS窗口中执行命令的效果是一样的&#xff0c;所以只要在运行窗口中可以使用的命令都可以用SYSTEM&#xff08;&#xff09;传递&#xff0c;但要注意的是输…