OpenSSH

ssh: secure shell, protocol, 22/tcp, 安全的远程登录

OpenSSH: ssh协议的开源实现;

dropbear:另一个开源实现;

 SSH协议版本

v1: 基于CRC-32MAC,不安全;man-in-middle

v2:双方主机协议选择安全的MAC方式

基于DH算法做密钥交换,基于RSADSA算法实现身份认证;

两种方式的用户登录认证:

基于password

基于key

 OpenSSH:

C/S

C: ssh, scp, sftp

Windows客户端:

xshell, putty, securecrt, sshsecureshellclient

S: sshd 

客户端组件:

ssh, 配置文件:/etc/ssh/ssh_config 

格式:ssh [user@]host [COMMAND]

  ssh [-l user] host [COMMAND]

   -p port:远程服务器监听的端口;

   -X: 支持x11转发;

   -Y:支持信任的x11转发; 

  Host PATTERN

   PARAMETER VALUE 

  基于密钥的认证:

   (1) 在客户端生成密钥对儿

   ssh -t rsa [-P ”] [-f “~/.ssh/id_rsa”]

例一:生成密钥对

[root@localhost ~]# ssh-keygen

   (2) 把公钥传输至远程服务器对应用户的家目录

   ssh-copy-id [-i [identity_file]] [user@]machine

例一:传输公钥

[root@localhost ~]# ssh-copy-id root@192.168.21.137

   (3) 测试

[root@localhost ~]# ssh root@192.168.21.137
Last login: Thu Jun 15 11:05:33 2017 from 192.168.21.137

scp命令:

scp [options] SRC… DEST/ 

存在两种情形:

PULLscp [options] [user@]host:/PATH/FROM/SOMEFILE /PATH/TO/SOMEWHERE

PUSH: scp [options] /PATH/FROM/SOMEFILE [user@]host:/PATH/TO/SOMEWHERE

例一:把etc/fstab文件复制到另外一台主机上

[root@localhost ~]# scp /etc/fstab root@192.168.21.137:/tmp/

常用选项:

-r: 递归复制;

-p: 保持原文件的属性信息;

-q: 静默模式

-P PORT: 指明remote host的监听的端口; 

sftp命令:

sftp [user@]host

sftp> help

例一:以指定用户的生份运行

[root@localhost ~]# sftp root@192.168.21.141
Connected to 192.168.21.141.
sftp>

服务器端:

sshd, 配置文件: /etc/ssh/sshd_config

常用参数:

Port 22022

ListenAddress ip

PermitRootLogin yes 

限制可登录用户的办法:

AllowUsers user1 user2 user3

AllowGroups 

ssh服务的最佳实践:

1、不要使用默认端口;

2、禁止使用protocol version 1

3、限制可登录用户;

4、设定空闲会话超时时长;

5、利用防火墙设置ssh访问策略;

6、仅监听特定的IP地址;

7、基于口令认证时,使用强密码策略;

# tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 | xargs

8、使用基于密钥的认证;

9、禁止使用空密码;

10、禁止root用户直接登录;

11、限制ssh的访问频度和并发在线数;

12、做好日志,经常分析; 

ssh协议的另一个实现:dropbear

(1) dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048

dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key

dropbear -p [ip:]port -F -E

 

 

原创文章,作者:kang,如若转载,请注明出处:http://www.178linux.com/78334

(0)
上一篇 2015-06-21 18:52
下一篇 2015-06-23 09:51

相关推荐

  • Linux进程管理

    内核的功能:     进程管理 文件系统 网络功能 内存管理 驱动程序 安全功能等     rocess:运行中的程序的一个副本,是被载入内存的一个指令集合      进程ID(Process ID,PID)号码被用来标记各个进程 UID,GID,和…

    Linux干货 2016-09-12
  • 马哥教育网络班N22期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。     [root@zabbix ~]# id $(who | cut -d' ' -f1 | tail -n 1)    &nbs…

    Linux干货 2016-08-30
  • CentOS6系统启动流程

    概述     了解系统的启动流程,有助于我们了解Linux系统上的一些工作原理,有助于我们深入的理解一个系统的运作方式,那么本篇就以CentOS6系统为例,介绍一下有关Linux系统启动相关的内容,分为一下几个部分:     1、Linux系统的一些基础概念  &nbs…

    Linux干货 2016-09-09
  • linux基础学习第十二天(shell函数、数组以及yum使用及编译安装)

    2016-08-18 授课内容: shell编程基础(select 循环与菜单、函数) yum管理、定制yum仓库 select 循环与菜单         select variable in list       &…

    Linux干货 2016-08-21
  • Linux之bash shell脚本编程入门篇(一)

    什么是bash shell脚本编程? 答:Linux里面有多种shell,而CentOS和redhat的默认shell是bash shell。至于shell脚本,这个跟windows操作系统里面的批处理文件有点像(.bat的文件)。不知道大家还是否记得Linux的哲学思想吗?其中有那么两点点:由众多目的的单一应用程序组成:一个程序只做一件事,且做好;组合目的…

    Linux干货 2016-08-15
  • Sed文本文件工具的使用详解

    Sed文本文件工具的使用详解 一、概述 sed 工具实际上就是一个非交互式的编辑器,主要是为了处理文本而生的,我们知道处理文本的三剑客是 grep sed awk 我们之前学习过 grep 文本过滤工具,它的主要作用是为了过滤文本,而sed 工具也是过滤文本,只不过sed工具针对的是文件中的每一行,而且sed工具更加强大,下面还具体说明一下sed 工具的原理…

    Linux干货 2016-10-09