ssh 的简介与使用


简介:

ssh 全称 Secure Shell Protocol
默认端口 默认22 服务处于监听状态,用于远程链接,早期使用telnet;
主要功能   远程连机和sftp 功能
版本 两个不兼容的ssh协议版本,分别是1.x和2.x;服务端默认是2.x ssh2同时支持RSA和DSA密钥,但是ssh1仅仅支持RSA密钥;
ssh服务端软件 OpenSSH(负责加密)和客户端SSH组成;
工作机制    本地的ssh客户端发送一个链接请求到远程的ssh服务端,服务端检查链接的客户端发送的数据包和ip地址,如果确认合法,就会发送密钥给ssh的客户端,此时,客户端本地的再将密钥发送给服务端,自此链接建立。 备注:连不上的情况
防火墙
端口是否修改
客户端线路有问题

ssh1.x的整个联机加密步骤:

#每一台ssh服务主机都可以使用RSA加密方式来产生一个1024-bit的RSAkey,这个RSA的加密方式就是用来生产公钥和私钥的算法之一。

1、当ssh服务启动时,就会产生一个768-bit 的临时公钥:
      grep -i serverkey /etc/ssh/sshd_config
        #ServerKeyBits 1024
         注意(centos 是768)

2、当client端SSH联机请求传送过来时,Server就会将这个1024-bit的公钥传给Client端,此时Client会将此公钥与先前存储的公钥进行比对,看是否标准。判断标准是:Client 端联机用户目录下~/.ssh/known_hosts文件的内容(linux客户端)

    在Client端接受到这个1024-bit的Server后,Client本地也会随机产生一个246-bit的私钥(Private key或hostkey),并且以加密的方式(具体的加密算法由客户端在服务器提供的所有可用算法中选择,默认为3DES算法)将Server key和host key 整合成一对完整的key pair,并将这个keypair在传给server。


 3、当客户端完成后,Server与Client端在这次的联机中,就以这一对1024-bit的keypair进行数据传输
ssh version2 多加了一个确认联机正确性的Diffie-Hellman机制,每次数据传输中,server都会以该机制检查数据的来源是否正确,这样,避免联机过程中被插入恶意程序代码的问题,是比较安全的。


ssh服务的认证类型
ssh服务主要提供两种级别的安全验证:
基于口令的安全验证 : ssh -p52113 [email protected]
基于密钥的安全认证 :cat  ~/.ssh/known_hosts       
[10.10.70.11]:52113 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtjcHQwK/He9lYMFkZm9VhJEUOyby5t6EafXguptVd71TKJJ+SLGebJq3gX8BCLE7VLxDQDPZ/v57AmHFg72Vh4FTbDnhgcD0rgFAwShRIv+R3vCiZTbTW3tsjuIpEC6VlMaTxe5mfGk9hC7X0S2vC3eLV11kJTsNztlhjkikUTwu9qJ9jKL3uVVe6L8+u7Q3pjL1ORwKxqlNMs5lDoZ4V3PP3MfC2PNcrr1IIhJZCaRKmHVc0v2ba2yGnvWzZcd/KRVirlSixyL7Ibka07NsShVrBROkiVcWDf9Yc+xI5D9WkBJncgJEetUQ07bRUZsC/LYUg8On6XcU0lhYw1Al2w==


安装:

#默认安装就已包含ssh服务所需要的软件OpenSSL和OpenSSH
 1、开机自启动;
 2、服务端文件: /etc/ssh/sshd_config 

  #服务端包含两个服务功能ssh远程链接。SFTP服务

    客户端文件:/etc/ssh/ssh_config
  #ssh客户端:包含ssh以及像scp(远程拷贝)、slogin(远程登录)、sftp(安全FTP文件传输)等应用程序

ssh密钥生成 :

工具:ssh-keygen #是一个脚本
#密钥生成的时候尽量不使用root用户
A、

    ssh-keygen  -t dsa (指定算法)
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):  指定地址 默认是家目录
    Enter passphrase (empty for no passphrase):  输入密码  不给
    Enter same passphrase again:    回车到底
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    4b:73:39:13:6d:f6:9d:e2:2f:5e:1c:23:37:ea:37:94 root@moban2
    The key's randomart image is:
    +--[ RSA 2048]----+
    |                 |
    |           .     |
    |          . +    |
    |           = . ..|
    |        S =  o.*o|
    |       . + o. *E+|
    |        .    o.o |
    |            ..oo |
    |            .oo..|
    +-----------------+

   # -t 指定算法   默认rsa ;  dsa 一般用于数字签名 (一般使用dsa)

 B、检查
     ls  ~/.ssh/
     id_dsa  id_dsa.pub   

     #id_dsa(私钥 :钥匙) 权限 :小   分发服务器: 保留本地
      id_dsa.pub(公钥:锁)

 C、进行公钥分发 :

    工具:ssh-copy-id

    ssh-copy-id -i  id_dsa.pub "-p 52113 [email protected]"
    #ssh-copy-id 是一个脚本;默认端口是22 ;如果不是默认需要使用-p指定 ,且需要使用双引号;只能分发公钥;

    范例: ssh-copy-id -i  id_dsa.pub "-p 52113 [email protected]"
            [email protected]'s password:
            Now try logging into the machine, with "ssh '-p 52113 [email protected]'", and check in:

            .ssh/authorized_keys 成功了
             to make sure we haven't added extra keys that you weren't expecting.



  D、检查分发主机:    

        ll  ~/.ssh/authorized_keys
         -rw------- 1 root root 596 Jan 30 21:51 /root/.ssh/authorized_keys
     验证:
     ssh  10.10.70.12
     Last login: Fri Jan 30 22:50:07 2015 from 10.10.70.11


配置文件:

    #sshd_config服务端;ssh_config客户端

     网友详解:http://bbs.linuxtone.org/thread-5487-1-1.html 

     Port 52113             #→ssh连接默认的端口修改
     PermitRootLogin no         #→root禁止远程登陆。
     PermitEmptyPasswords no    #→禁止空密码登陆
     UseDNS no                  #→不使用DNS
     GSSAPIAuthentication no    #一般为NO

ssh 连接慢 排查:

1、在ssh服务端上更改/etc/ssh/sshd_config文件中的配置为如下内容:
UseDNS no
# GSSAPI options
GSSAPIAuthentication no
然后,执行/etc/init.d/sshd restart重启sshd进程使上述配置生效,在连接一般就不慢了。

2、检查ssh服务端上/etc/hosts文件中,127.0.0.1对应的主机名是否和uname -n的结果一样,或者把本机ip和hostname(uname -n结果)加入到/etc/hosts里。

3、利用ssh -v的调试功能查找慢的原因。    

       

本文出自 “思想大于技术” 博客,谢绝转载!

你可能感兴趣的:(SSH 简介与使用)