博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenSSH详解
阅读量:6829 次
发布时间:2019-06-26

本文共 4034 字,大约阅读时间需要 13 分钟。

一、SSH简介

二、ssh的客户端程序
三、sshd服务端配置
一、SSH简介
Secure Shell (SSH) 是一个允许两台电脑之间通过安全的连接进行数据交换的网络协议。加密保证了数据的保密性和完整性。SSH采用公钥加密技术来验证远程主机,以及(必要时)允许远程主机验证用户。
SSH 通常用于远程访问和执行命令,但是它也支持隧道,转发任意 TCP 端口以及 X11 连接;它还能够用 SFTP 或 SCP 协议来传输文件。
OpenSSH:
    telnet:C/S架构  23/tcp
        明文:认证等均为非加密 //任何人都可以监听
        Linux:禁止管理员直接登录,默认
    ssh:C/S架构22/tcp,安全地远程登录
    协议:
        ssh v1:废弃,man-in-middel中间人攻击,不能避免
        ssh v2
    持久链接:不会自动断开,除非空闲超时,或者client主动断开
    
    公钥:放在server 。默认/root/.ssh/authorized_keys文件中追加
    私钥:建立链接的时候,加密一段随机数据,用于实现身份认证
    
第一次:建立链接,放在已知列表中,成为可信主机 ,client的~/.ssh/known_hosts
数据交换:基于DH算法或者其他密钥分发算法,实现密钥分发
    使用对称密钥加密传输
    定时更换对称密钥,避免对称密钥被破解
密码通过:预共享密钥实现加密 //不安全
    
主机认证:需要用到主机认证密钥,由服务器端维护提供
ssh支持两种认证:
    1.基于口令的认证://密码
    2.密钥认证//
            用户提供一对儿密钥,私钥留存于用户端,公钥放在服务器上
ssh:是一种协议
OpenSSH:ssh协议的开源实现
    sshd:ssh daemon  /etc/ssh/sshd_config
    ssh:ssh cli        /etc/ssh/ssh_config
        scp,sftp
二、ssh的客户端程序        
ssh客户端程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    
ssh 
[option] [[user@]host] [COMMAND]
    
ssh 
[options] -l user host [
command
]
    
省略主机名:使用本地用户名,作为远程登录的用户名
        
-l login-name
        
-p port,远程服务器的端口
        
-o options链接选项
            
//
使用-o覆盖指定配置文件中的定义
        
-X :支持x11转发
        
-Y:支持受信任的x11转发
        
-b :指定要使用的本地地址作为链接
//
假如s有acl,client可能有多个地址
        
-i identity_file:
//
密钥对,可能有多个,指定本地密钥
                
默认:~/.
ssh
/id_rsa
,~/.
ssh
/id_dsa
,~/.
ssh
/id_ecdsa
                
//
私钥
    
配置文件:
/etc/ssh/ssh_config 
,~/.
ssh
/config
        
Host 192.168.4.1

    

SSH支持的认证方式:
    基于口令认证:
    基于密钥认证:
        1.生成一个密钥对儿  ssh-keygen [-b bit] [-t type] //私钥可以不加密,也可以加密
        2.ssh-copy-id
        3.别名~/.ssh/config
                host mt 192.168.4.109 22
            vim /etc/hosts
                192.168.4.109 mt //能够解析
                
    windows客户端:secret,xmanager(xshell),ssh,secureCRT,putty
        
    ssh-keygen 

1
2
3
4
     
-b bits 
//
默认2048bits
        
-t 
type
//dsa
密钥长度固定为1024bits,rsa,ecdsa 256
/384/512
,默认rsa
        
-f 指定输出保存位置,默认~/.
ssh
/
        
-N 指定私钥加密密码

     

    ssh-keygen -t rsa -f ~/.ssh/id_rsa -N ''//加密密钥为空
        id_dsa的权限必须是600
                    
    ssh-copy-id [-i 公钥] user@host
        -i 指定公钥
        复制本地的id_rsa.pub的内容到server的~/.ssh/authorized_keys中
        ssh-copy-id root@192.168.4.100 //可以不使用-i也可以
    //注:只对当前主机当前用户有效,其他用户需要独立添加记录    
    
scp:secure cp,跨主机安全文件传输的工具
    scp [option] SRC....  DEST/
    scp [options] SRC  DEST
    
    存在两种方式:
        PUSH:scp [option] /paht/to/from/somefile ... [user@]hostname://path/to/somewhere
        PULL:scp [option] [user@]hostname:/path/to/somefile...  /path/to/somefile
        
        从本地复制到远程,从远程复制到本地
    -r:递归复制
    -p:保存源文件的权限及从属关系
    -q:静默模式 //可能会覆盖目标文件,建议慎用
    -p port:端口
    
sftp:Openssh的一个子系统:sftp //远程登录目标主机,获取多个文件
    sftp root@192.168.4.109 [-p port]
    help //查看帮助
        lpwd
        lls //l开头的,都是本地命令,其他的都是远程主机上的
        
    ftp:file transfer protocol,明文
        安全传输机制:
            ftps:ftp over ssl
            sftp:ftp over ssh        
    sftp:
        C/S
        S:由sshd服务进程实现,是ss的一个子系统,在CentOS上默认启用
        C:sftp命令
    
三、sshd服务端配置
配置文件:/etc/ssh/sshd_config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#Port 22    //强烈建议,不要使用默认端口
#AddressFamily any
#ListenAddress 0.0.0.0    //服务器可以监听多个地址,一个公网,一个私网,建议做vpn
#ListenAddress ::    
#Protocol 2
HostKey 
/etc/ssh/ssh_host_rsa_key 
//
主机密钥所在
++++++++
#KeyRegenerationInterval 1h //每隔1h生成一次密钥,加密数据使用的对称密钥
SyslogFacility AUTHPRIV  
//
日志记录,SyslogFacility:日志设施,AUTHPRIV:表示记录于
/var/log/secure
#LogLevel INFO        //日志级别,大于等于该级别的都会被记录
#LoginGraceTime 2m        登录宽限期,等待client输入密码的时间
#PermitRootLogin yes    限制root用户远程登录
#AllowUsers user1 user2 ...;允许使用ssh服务的用户白名单
#AllowGroups grp1,grp2,    
#DenyUsers user1 user2 ..;拒绝使用ssh 
#当客户端连上服务器端后,若没有任何操作则,服务器端默认会,每隔一定时间发送一个alive消息给客户端寻求客户端应答,默认一共发三次.若都没有回应,则断开连其中        
#ClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接
#ClientAliveCountMax 3 #server发出请求后,客户端没有响应得次数达到3,就自动断开连接,正常情况下,client不会不响应
#HostbasedAuthentication  no #禁用基于主机的身份验证
#ChrootDirectory /home/%u  #使用 Chroot SSHD 将 SFTP 用户局限于其自己的主目录
#Compression  {yes|no|delayed} #指令压缩,#默认是delayed 意思就是等到用户认证结束后再对数据进行压缩
#StrictModes yes        
#MaxAuthTries 6            尝试次数
#MaxSessions 10            最多保持会话
#RSAAuthentication yes  支持rsa的密钥认证
#PubkeyAuthentication yes    公钥认证
AuthorizedKeysFile      .
ssh
/authorized_keys 
//
认证文件
PasswordAuthentication 
yes 
//
支持口令认证
ChallengeResponseAuthentication no 
//
不安全,建议关闭
PrintMotd 
yes 
#“PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。
# Kerberos options //专用kerberous认证
UsePAM 
yes 
//
使用pam模块
X11Forwarding 
yes 
//
是否支持x11转发
关闭:
#UseDNS yes //反解用户名,建立ssh链接的时候,有时候很慢,及时由于他

手册:

    man_sshd_config
    man sshd

本文转自MT_IT51CTO博客,原文链接:http://blog.51cto.com/hmtk520/2061316,如需转载请自行联系原作者

你可能感兴趣的文章
JDBC 操作数据库实例
查看>>
P-残缺的棋盘
查看>>
HDU-2068 RPG的错排(组合, 错排)
查看>>
Windows ForFiles 删除 过期 文件
查看>>
bzoj1706
查看>>
gym101431B
查看>>
Bzoj4259: 残缺的字符串
查看>>
iOS开发之--如何使用自定义字体
查看>>
谈谈我对JS闭包的理解
查看>>
L211
查看>>
喝什么对眼睛好呢!
查看>>
poj2030
查看>>
JavaScript进阶试题
查看>>
笔记本自动断网解决办法
查看>>
装饰器原理剖析
查看>>
day3:vcp考试
查看>>
Dijkstra(变形) POJ 1797 Heavy Transportation
查看>>
BestCoder Round #54 (div.2) 1003 Geometric Progression
查看>>
DNS正向解析与反向解析
查看>>
BZOJ3926:[ZJOI2015]诸神眷顾的幻想乡——题解
查看>>