在linux系统操作中,经常需要连接其他的主机,连接其他主机的服务是openssh-server,它的功能是让远程主机可以通过网络访问sshd服务,开始一个安全shell,下文将介绍一些ssh服务的功能和安全方法。

1、主机的连接方式

连接其他主机的命令是"ssh 远程主机用户@远程主机ip",例如下图,连接"root@172.25.254.102"的主机。

如果是首次连接,将会出现下图输入,是因为连接陌生主机时需要建立认证关系,输入"yes"后输入远程主机用户密码即可完成连接。

上述命令是在对方主机上打开一个安全的shell,但是并不能打开图形工具,如果需要打开图形工具,则需要在上述命令后加"-x",即连接有图形的主机命令为"ssh 远程主机用户@远程主机ip -x"。

"ssh 远程主机用户@远程主机ip command"可以直接在远程主机运行某条命令,例如,输入"ssh root@172.25.254.102 touch /root/Desktop/file{1..10}",即表示在ip为172.25.254.102的主机root用户桌面下建立10个文件。

2、sshkey加密方式

为了主机的安全也为了特定主机连接的方便,通常使用sshkey加密方式,如下图,输入命令"ssh-keygen",按三下回车后即可生成一对公钥和私钥。新出现的文件"/root/.ssh/id_rsa"称作私钥,"/root/.ssh/id_rsa.pub"称作公钥。公钥相当于是锁,私钥相当于是钥匙。

在生成钥匙之后,输入命令"ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.102"对ip为172.25.254.102的主机上锁。可以对其他主机进行上锁,输入正确的密码即可。

用命令"scp /root/.ssh/id_rsa kiosk@172.25.254.2:/home/kiosk/.ssh/"将私钥发送给其他主机,并进行登陆验证。

3、提升ssh服务的安全级别

3.1、修改配置文件

输入命令"vim /etc/ssh/sshd_config"即可修改ssh的配置文件,其中,"PasswordAuthentication yes|no"表示是否开启密码认证,yes为支持,no为关闭,如果是no的情况,并且无私钥,则不能连接本台主机。

"PermitRootLogin yes|no"表示是否允许超级用户登陆。"AllowUsers username"表示用户白名单,只有在名单里的用户可以使用sshd建立shell。"DenyUsers username"表示用户黑名单,名单中的用户不能通过sshd建立shell。值得注意的是,如果黑名单和白名单中有用一个用户,则黑名单生效。

3.2、控制ssh客户端访问

如下图所示,输入命令"vim /etc/hosts.deny"并在其中输入"sshd:ALL"可以拒绝所有人连接sshd服务。

输入命令"vim /etc/hosts.allow"并且输入"sshd:172.25.254.2",则代表只允许ip为172.25.254.2的主机连接。也可以输入"sshd:ALL EXCEPT 172.25.254.2"表示只不允许ip为172.25.254.2的主机连接。

3.3、修改ssh登陆提示

输入命令"vim /etc/motd",在文件中输入需要作为提示的信息如下图所示,则在ssh连接成功时会自动显示出来。

以上就是主机间互相连接的服务openssh-serve的连接方式及其安全保护。

linux初学者-sshd服务的更多相关文章

  1. Linux中Sshd服务配置文件优化版本(/etc/ssh/sshd_config)

    Linux中Sshd服务配置文件优化版本(/etc/ssh/sshd_config) # $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Ex ...

  2. Linux系统 SSHD服务安全优化方案

      # 1. 修改默认端口 #Port 22 # 2. 修改监听协议,只监听某个或某些网络协议 #AddressFamily any AddressFamily inet # 3. 修改ssh只监听内 ...

  3. Linux之sshd服务

    ---恢复内容开始--- ---恢复内容结束--- 一.linux中对服务管理与控制(以sshd为例) 1.什么是服务 可以用来给客户提供相关操作,对自己没有什么好处 2.用什么控制服务 系统初始化进 ...

  4. Linux中的sshd服务

    Linux中的sshd服务,主要用于pst终端,远程连接到linux服务中 看sshd服务状态 service sshd status 停止sshd服务 service sshd stop 启动ssh ...

  5. Linux系统的ssh与sshd服务

    当主机中开启openssh服务,那么就对外开放了远程连接的接口 ssh为openssh服务的客户端,sshd为openssh服务的服务端 远程管理工具ssh具有数据加密传输.网络开销小以及应用平台范围 ...

  6. 《linux就该这么学》第十一节课: 第九章,网卡绑定与sshd服务

    8.4.服务的访问控制列表 TCPwrappers是RHEL7中默认启用的流量监控程序,能够对服务做出允许或拒绝. TCPwrappers服务由两个文件控制:  /etc/hosts.allow    ...

  7. Linux系统管理命令-systemctl 和 sshd 服务

    一系统服务管理命令systemctl 开启一个服务 : systemctl start sshd 关闭一个服务: systemctl stop sshd 查看一个服务的状态: systemctl st ...

  8. linux初学者-iptables篇

     linux初学者-iptables篇 iptables是防火墙的一种,是用来设置.维护和检查linux内核的IP过滤规则的,可以完成封包过滤.封包重定向和网络地址转换(NAT)等功能. iptabl ...

  9. linux初学者-系统日志(一)

    linux初学者-系统日志(一) 系统日志可以记录系统的运行状态,如果运行故障,会说明错误的位置.所以对系统日志的了解和学习是非常有必要的. 1.系统日志的默认分类 系统日志会默认记录在以下地址中,不 ...

随机推荐

  1. Vbox中Linux虚拟机网络配置(比较实用)

    好久没写过东西了,主要大部分都是来自对生活的感悟,很少有实实在在的关于学得有成就感的技术可以“炫耀”,所以也就懒得在这个上面登了. 实验室很早就有位师兄曾在吃饭的路上问过我们这群小弟,你们知道Vbox ...

  2. 教你做一个牛逼的DBA(在大数据下)

    一.基本概念 大数据量下,搞mysql,以下概念需要先达成一致 1)单库,不多说了,就是一个库 2)分片(sharding),水平拆分,用于解决扩展性问题,按天拆分表 3)复制(replication ...

  3. javaweb各种框架组合案例(二):maven+spring+springMVC+mybatis

    1.mybatis是比较新的半自动orm框架,效率也比较高,优点是sql语句的定制,管理与维护,包括优化,缺点是对开发人员的sql功底要求较高,如果比较复杂的查询,表与表之间的关系映射到对象与对象之间 ...

  4. python之datetime

    一.获取当前日期 >>> from datetime import datetime >>> now=datetime.now() >>> pri ...

  5. EasyTransaction主要源码分析

    EasyTransaction是一个全功能的分布式事务框架,以下特性摘抄自其首页:https://github.com/QNJR-GROUP/EasyTransaction 一个框架包含多种事务形态, ...

  6. C++几个细节(1)

    标签: C++ 1. 类的初始化 几种不同初始化的区别: A a;和A *a=new A()的区别,示例程序如下: #include <stdio.h> #include <stri ...

  7. Storm 学习之路(五)—— Storm编程模型详解

    一.简介 下图为Strom的运行流程图,在开发Storm流处理程序时,我们需要采用内置或自定义实现spout(数据源)和bolt(处理单元),并通过TopologyBuilder将它们之间进行关联,形 ...

  8. abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  9. 如何用 Flutter 实现混合开发?闲鱼公开源代码实例

    Flutter: 必火,转两篇软文预热哈哈~ 中文网: https://flutterchina.club/get-started/test-drive/ 如何用 Flutter 实现混合开发?闲鱼公 ...

  10. mysql开启日志查询功能

    set global general_log_file='/tmp/general.lg';set global general_log=on; show global variables like ...