SSH协议详解

OpenSSH

一、 前言

使用SSH可以在本地主机和远程服务器之间进行加密地传输数据,实现数据的安全。而OpenSSH是SSH协议的免费开源实现,它采用安全、加密的网络连接工具代替了telnet、ftp等古老明文传输工具。

SSH(Secure Shell)是建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登陆会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。

SSH可以将所有的传输数据加密,这样“中间人”这种攻击方式就不可能实现了,而且也可以防止DNS和IP欺骗。还有一个额外的好处就是传输的数据经过压缩的,可以加快传输的速度。

二、 SSH工作原理

SSH是由服务端和客户端的软件组成,服务端是一个守护进程,它在后台运行并响应来自客户端的连接请求。

SSH的工作机制大体是:本地客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH客户端,本地再将密钥发回给服务端,到此为止,连接建立。

启动SSH服务器后,sshd进程运行并在默认的22端口进行监听。安全验证方式:

基于口令的安全验证(账号密码),也有可能受到中间人攻击

基于密钥的安全验证,就是提供一对密钥,把公钥放在需要访问的服务器上,如果连接到SSH服务器上,客户端就会向服务器发出请求,请求用密钥进行安全验证,服务器收到请求之后,先在改服务器的主目录下寻找公钥,然后把它和发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”并把它发送给客户端。客户端收到“质询”之后就可以用私钥解密再把它发给服务器端。基于这种方式,相对比较安全。

三、OpenSSH服务器安装和配置,客户端一般都有

先查看Linux系统中openssh-server、openssh、openssh-clients、openssh-askpass软件包是否已经安装,如果没有则安装。

SSH协议详解

依赖关系太多了,固用yum方式安装:yum install openssh-askpass -y

SSH协议详解

好了,都装好了。

四、客户端配置

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

1、客户端程序

ssh [options] [user@]host [COMMAND]
ssh [-l user] [options] host [COMMAND]

常用选项:
-l user:以指定的用户登录远程主机;
-p port:用于指明远程服务器的端口;远程服务器端口可变。
-X:支持 X11 转发;
-Y:支持信任的 X11 转发;
    X:协议; x-window, C/S
    X11 转发的作用:在本地显示远程主机上的图形窗口;
    前提:本地是 X 图形界面,或者提供了 x service;
-o StrictHostKeyChecking=no  是不是要对主机严格检查,建议no。


ssh 支持的用户认证方式:
    基于口令的认证;
    基于密钥的认证;
(1) 在本地主机生成一对儿密钥:
    ssh-keygen [-q] [-b bits] [-t type] [-f output_keyfile] [-P passphrase]

    -t {rsa|ecdsa|dsa}:公钥加密算法类型;
    -b bits:指明密钥长度;
    -P passphrase:私钥加密密码;
    -f output_keyfile:生成密钥的保存位置;

(2) 在本地主机上,将公钥复制到要登录的远程主机的某用户的家目录下的特定文件中(~/.ssh/authorized_keys)

    ssh-copy-id [-i [identity_file]] [-p port] [-o ssh_option][user@]hostname

(3) 测试
    ssh user@host

例子:客户端ip:192.168.1.120 服务端ip:192.168.1.109

SSH协议详解


生成公钥:

SSH协议详解


测试:

SSH协议详解


SSH协议详解


删除密钥 :rm -rf .ssh/id_rsa*

2、scp命令,类似与cp

将本地的/etc/fstab 复制到服务端主机的/tmp目录下

SSH协议详解

SSH协议详解

将远程主机上的的/root/1.sh复制过来

SSH协议详解

3、sftp安全的文件传输程序,类似于ftp,它的所有操作都是加密ssh传输。

连接至远程主机,可以get一些资源

SSH协议详解

五、服务器端配置

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

几个主要的配置如下:

Port 22   服务器监听的端口,默认为22

ListenAddress 0.0.0.0   服务器端的ip地址
Protocol 2              ssh protocol有两个版本,1不安全
PermitRootLogin yes 设置root用户能否使用ssh登陆  建议用no
UseDNS no   要不要反解用户的主机名

限制可登录的用户(配置文件):
    AllowUsers user1 user2 user3 ...   白名单
    AllowGroups grp1 grp2 ...
    DenyUsers user1 user2 ...
    DenyGroups grp1 grp2 ...        黑名单

CentOS 6:
    服务脚本:/etc/rc.d/init.d/sshd
CentOS 7:
    Systemd Unit File:/usr/lib/systemd/system/sshd.service

六、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、做好日志,经常分析; /var/log/secure

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

(4)
N24_yeziN24_yezi
上一篇 2016-12-16 17:38
下一篇 2016-12-17 15:08

相关推荐

  • 条件判断工具 test or [ ]

    概述         条件判断是学习shell脚本之前要掌握的重点基础。条件判断分为以下几类:文件判断、数值判断、字符判断。而文件判断还可以细分到:文件类型判断、文件权限判断、文件所属判断、文件之间属性判断;      &nbsp…

    Linux干货 2016-02-14
  • Linux基础学习总结(二)

    经过前两周的学习,我们大家对于Linux系统和操作已经有了一定的认识。基于Linux平台进行开发,确实要更方便和高效,我经过自己的学习消化,现在将自己的理解的几点总结下来: Linux哲学思想的几句话,简洁的阐明了linux系统的特点。其中一切都是一个文件这句话特别精辟,在实际学习和操作linux系统之后,更是深刻体会到了这句话的内涵,感受颇深。它具体指明了…

    Linux干货 2018-03-16
  • nl命令使用解析

    nl    命令功用: nl – number lines of files 显示文件内容,并列出行号   命令样式: nl [OPTION]… [FILE]…   命令选项: -b:正文行号,参数为样式style -n:行号格式,参数为格式format -w:设定行号所占位数,参数为…

    Linux干货 2016-10-20
  • 网络的冰山一角

        这周我们学习了网络管理,每一天进度特别快,上课认真听了,但是感觉也只能听懂一半。所以我决定把网络管理作为这周博客写一写,这样相当于又复习了一边,能加深印象。 一、用户应用程序对网络的影响     1、批处理应用程序:无需直接人工交互,宽带很重要,但是并非关键性因素。 &n…

    2017-09-04
  • N25-第三周作业

    N25第三周作业 博客作业 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@ip-172-31-25-9 ~]# who|awk '{print $1}'|sort -u ec2-user [root@ip-172-31-25-9&n…

    Linux干货 2017-02-06
  • Linux 第三天: (07月26日) 练习和作业

    Linux 第三天: (07月26日) 练习和作业           字符终端登录时, 显示当前登录终端号, 主机名和当前时间   vi /etc/issue   Kernel \r on an \mon terminal \lhostname is \ntime is \t &nbsp…

    Linux干货 2016-08-08

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-23 12:18

    赞,能将上面知识灵活运用于实战会更好~~继续加油~