(转)详解Linux中SSH远程访问控制
详解Linux中SSH远程访问控制
原文:http://blog.51cto.com/dengqi/1260038
SSH:是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能(使用TCP的22号端口)。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。
在RHEL 5系统中使用的是OpenSSH服务器由openssh,openssh-server等软件包提供的(默认已经安装),并以将sshd添加为标准的系统服务。
SSH提供一下两种方式的登录验证:
1、密码验证:以服务器中本地系统用户的登录名称,密码进行验证。
2、秘钥对验证:要求提供相匹配的秘钥信息才能通过验证。通常先在客户机中创建一对秘钥文件(公钥和私钥),然后将公钥文件放到服务器中的指定位置。
注意:当密码验证和私钥验证都启用时,服务器将优先使用秘钥验证。
SSH的配置文件:
sshd服务的配置文件默认在/etc/ssh/sshd_config,正确调整相关配置项,可以进一步提高sshd远程登录的安全性。
配置文件的内容可以分为以下三个部分:
1、常见SSH服务器监听的选项如下:
Port 22 //监听的端口为22
Protocol 2 //使用SSH V2协议
ListenAdderss 0.0.0.0 //监听的地址为所有地址
UseDNS no //禁止DNS反向解析
2、常见用户登录控制选项如下:
PermitRootLogin no //禁止root用户登录
PermitEmptyPasswords no //禁止空密码用户登录
LoginGraceTime 2m //登录验证时间为2分钟
MaxAuthTries 6 //最大重试次数为6
AllowUsers user //只允许user用户登录,与DenyUsers选项相反
3、常见登录验证方式如下:
PasswordAuthentication yes //启用密码验证
PubkeyAuthentication yes //启用秘钥验证
AuthorsizedKeysFile .ssh/authorized_keys //指定公钥数据库文件
SSH客户端命令程序ssh、scp、sftp
通过ssh命令可以远程登录到sshd服务,为用户提供一个安全的Shell环境,一遍对服务器进行管理和维护。使用时指定登录用户名,目标主机作为参数。如下:
当用户第一次登录SSH服务器时,必须接受服务器发来的RSA秘钥(根据输入yes)后才能继续。接受的秘钥信息将保存到“~/.ssh/known_hosts”文件中。如果默认端口被更改,可以使用-p命令制定端口。
通过scp命令可以利用SSH安全连接与远程主机互相复制文件。使用scp命令时,除了必须制定复制源,目标以外,还应制定目标主机地址,登录用户,执行后提示验证口令等。如下:
复制某文件到SSH服务器上

下载SSH服务器上的某个文件到本地
通过sftp命令可以利用SSH安全连接与远程主机上传,下载文件,采用了与FTP类似的登录过程和交互式环境,便于目录资源管理。如下:
使用sftp命令通过SSH安全连接登录远程服务器

如果客户端是windows系统,那么我们可以使用一些图形化的工具来访问Linux服务器。常见的一些图形化工具有PuTTY,WinSCP等工具,具体如何使用请各位自行研究。
下面我们来详细讲解如何构建秘钥对验证的SSH体系
如下图所示:简单描述了构建秘钥对验证的基本过程。

根据上图所示,我们分四步来构建秘钥对验证的SSH。
1、在SSH客户机创建用户秘钥对。
如下:为test用户创建秘钥对。

上图命令中:-t用于指定算法类型,rsa表示使用rsa算法。
秘钥短语用来对私钥文进行保护,当使用私钥验证登陆时必须提供此处所设置的短语。
秘钥对默认保存在用户宿主目录下的.ssh/目录下。
2、将公钥上传至SSH服务器
将公钥上传至SSH服务器的方式有很多,可以使用U盘拷贝,也可以使用ftp、共享等方式上传。在此我们使用刚讲过的scp命令上传公钥文件。

3、在SSH服务器中导入公钥文本
在服务器中,目标用户(用来远程登录的用户)的公钥数据库位于~/.ssh/目录下,默认文件名是authorized_keys。如下:将test的公钥文件导入到user用户的公钥数据库中。

4、此时在客户端就可以使用秘钥对验证了。

此时需要用户输入创建秘钥对时输入的秘钥短语,而不需要知道用户的密码即可登录SSH服务器。
(转)详解Linux中SSH远程访问控制的更多相关文章
- 详解Linux中的cat文本输出命令用法
作系统 > LINUX > 详解Linux中的cat文本输出命令用法 Linux命令手册 发布时间:2016-01-14 14:14:35 作者:张映 我要评论 这篇 ...
- 详解linux中的ps命令
Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...
- 详解Linux中CentOS6.8下解压安装mysql-5.7.14
原文:http://blog.csdn.net/yangle4695/article/details/52185859 mysql下载地址:http://dev.mysql.com/downloads ...
- 【转】命令行浏览器 curl 命令详解,Linux中访问url地址
CURL --- 命令行浏览器 这东西现在已经是苹果机上内置的命令行工具之一了,可见其魅力之一斑 1)二话不说,先从这里开始吧! curl http://www.yahoo.com 回车之后,www. ...
- 详解linux中install命令和cp命令的区别
基本上,在Makefile里会用到install,其他地方会用cp命令. 它们完成同样的任务——拷贝文件,它们之间的区别主要如下: .最重要的一点,如果目标文件存在,cp会先清空文件后往里写入新文件, ...
- 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器
本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...
- 详解Linux下iptables中的DNAT与SNAT设置(转)
详解Linux下iptables中的DNAT与SNAT设置 这篇文章主要介绍了Linux下iptables中的DNAT与SNAT设置,是Linux网络配置中的基础知识,需要的朋友可以参考下 原文连 ...
- 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路
做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...
- 详解Linux运维工程师
运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感知前方潮流变化.如:今年大数据,人工智能比较火……(相对表示就是 Python 比较火) 之前写过运维 ...
随机推荐
- 20145218张晓涵 PC平台逆向破解_advanced
---恢复内容开始--- 20145218张晓涵 PC平台逆向破解_advanced shellcode注入 基础知识 shellcode就是在利用溢出攻击溢出时要值入的代码,也就是溢出后去执行的代码 ...
- quartz 使用配置文件配置线程数
quartz默认的线程数是10个,如果我们要修改这个线程数需要做一个配置文件,在配置文件内修改线程. 一共需要2个操作: 1.找到quartz的XML配置文件,设置加载配置文件(配置文件存放在weba ...
- 【C#】MVC+EF+LINQ 综合小项目
第一,创建数据库 create table category(id int primary key,name nvarchar(20)) create table news(id int primar ...
- 【kudu pk parquet】runtime filter实践
已经有好一阵子没有写博文了,今天给大家带来一篇最近一段时间开发相关的文章:在impala和kudu上支持runtime filter. 大家搜索下实践者社区,可以发现前面已经有好几位同学写了这个主题的 ...
- MooseFS分布式文件系统介绍
一.简介 MooseFS是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本.对于访问的客户端或者用户来说,整个分布式网络文件系统 ...
- 《Think in Java》
chapter 1 对象导论 面向对象程序设计(Object-oriented Programming ,OOP) chapter 2 一切都是对象 字段和方法 若类的某个成员变量是基本数据类型,即是 ...
- 美团Java实习面试经历(拿到Offer)
美团我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选,后来让学姐帮我改了一下简历,重新投另一个部门,获得了面试机会.10月23日中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我 ...
- windows server2008虚拟机系统盘扩容
windows server2008虚拟机的系统盘空间过小,对系统盘进行扩容,操作如下: 1.将虚拟机关机: 2.VMware对该虚拟机进行设置,选中磁盘,点击扩容,输入扩容大小,等待扩容完成: 3. ...
- get与post中文乱码问题
Jsp默认的字符编码格式是iso-8859-1 因为post方法与get方法传递参数的方式不一样,所以有不同的解决方法. 一.post乱码解决方法: 1.设置请求和响应的编码方式 //设置请求的编码格 ...
- 编写可维护的Javascript纪要
第一部分: 编程风格 在大型项目开发中,因为项目可读性规范性的需要(就像<编写可维护性的Javascript>一书作者Nicholas Zakas大神所说,他们团队所有成员写出的代码就像是 ...