zoukankan      html  css  js  c++  java
  • linux——ssh服务

    SSH服务(TCP端口号22):安全的命令解释器
    为客户机提供安全的Shell 环境,用于远程管理
    SSH基于公钥加密(非对称加密)技术: 数据加密传输; 客户端和服务器的身份验证;
    公钥 和 私钥   是成对生成的,这两个密钥互不相同,两个密钥可以互相加密和解密;
                       不能根据一个密钥而推算出另外一个密钥;
                       公钥对外公开,私钥只有私钥的持有人才知道;

    数据加密  和  数字签名  (根据功能不同分的)


    发送方使用接受方的公钥加密数据;
    接受方使用自己的私钥解密数据;
    数据加密保证了所发送数据的机密性;


    数字签名:(数字签名保证数据完整性、身份验证和不可否认)
    发送方:对原始数据执行HASH算法得到摘要值;发送方用自己的私钥加密摘要值;
               将加密的摘要值与原始数据发送给接受方;
    接受方:用发送方公钥解密摘要值,同时对收到的原始数据同样执行HASH产生另一种摘要值;
               将解密的摘要值与产生的摘要值对比;



    OpenSSH:
    服务端主程序:/usr/sbin/sshd
    客户端主程序:/usr/bin/ssh
    服务端配置文件:/etc/ssh/sshd_config (重启shhd服务生效)


    客户端配置文件:/etc/ssh/ssh_config
    SSH登录使用的用户名:服务器中的本地系统用户的帐号名;
    SSH登录的用户验证方式
    密码验证:使用服务器中系统帐号对应的密码;(PasswordAuthentcation  yes)
    密钥对验证:使用客户端中生成的公钥、私钥;(PubkeyAuthentication yes
                                                                AuthorizedKeyFile .ssh/authorized_keys)




    使用ssh命令远程登录方法:
    1.ssh 用户名@服务器地址
    2.ssh -l 用户名  服务器地址  (较少用)
    3.ssh 服务器地址(服务器正在使用哪个用户就以哪个用户登录)

    客户端密钥存放位置
    ~.ssh目录下
    服务器端的密钥存放位置
    /etc/ssh/ssh_host_*

    known_hosts  存放访问过的服务器的公钥
    authorized_keys 存放需要验证的客户机的公钥
    .ssh文件夹和下面的文件权限的组和其它人不能有w权限
                


    ssh访问很慢的原因和解决办法
    原因:访问服务器的时候会把服务器的ip地址反向解析为域名,如果无法解析就会导致登陆时很慢
    下面三种方法都可以解决这个问题
    1、清空/etc/resolv.conf文件中nameserver记录
    2、在客户机的/etc/hosts文件中添加服务器域名的解析记录
    3、修改客户机的/etc/ssh/ssh_config文件中:GSSAPIAuthentication no
            
    问题二:若是公钥文件出了问题,会导致无法认证,解决方法,就是把文件删除
            rm -rf  /root/.ssh/know_hosts
            service sshd restart
            
            
            
    配置案例:

            密码方式:  
                         service sshd restart     重启服务
                netstat -anpt  |  grep  sshd   查看端口
                登录主机:ssh root@192.168.100.127
                ssh直接在远程主机上新建用户: ssh root@10.10.10.1 adduser txy
            在密码认证的时候要看:服务器端中的 /etc/ssh/sshd_config 中PasswordAuthentcation  yes,,才能用密码认证
            
        第一次访问服务器时不用输入yes
                    ssh -o StrictHostKeyChecking=no root@10.10.10.1

                    /etc/ssh/ssh_config客户端文件
                    StrictHostKeyChecking no  第一次访问服务器时不用输入yes
                    
            
        秘钥方式
        
            这里的例子是一个普通用户登录到服务器中的普通用户,root用户登录就更加简单,不用创建文件,不用修改权限,生成秘钥的地方的root下
                        复制scp的地方也在root下:
            服务器端
            
                查看文件:修改    /etc/ssh/sshd_config中   PubkeyAuthentication yes
                创建文件:    mkdir /home/xiaohua/.ssh
                修改文件权限:    chomd -R 600 /home/xiaohu/.ssh 在这个文件中别的用户不能有w权限
            
            客户端:
                useradd xiaolue
                su - xiaolue  
                ssh-keygen
                scp /home/xiaolue/.ssh/id_rsa.pub root@192.168.100.127:/home/xiaohua/.ssh/authorized_keys


    访问控制:
            /etc/hosts.allow 优先于下面的
            /etc/hosts.deny
            首先检查hosts.allow文件,若找到相匹配的策略,则允许访问;否则继续检查hosts.deny文件,若找到了
            相匹配的策略,则拒绝访问;如果两个文件中都没有相匹配的策略,则允许访问;

            vim /etc/hosts.allow
                sshd:210.13.218.*:allow  允许登录的ip ,allow可以省略
                
            它能控制服务的范围:1,受super daemon (xinetd) 服务管理
                            2,受支持libwrap.so模块的服务
            查看具体服务是否控制:ldd /usr/sbin/sshd  |  grep wrap
                               idd $(which 服务)   |  grep wrap
                            
            修改后要重启服务:service xined restart
            


    有两款有用的软件:winSCP   Secure CRT




    远程桌面: (切记远程要开启:linux在系统,首选项,远程桌面。  )

    开启vnc的1号桌面
    vncserver :1
    修改~.vnc/xstartup文件
    # Uncomment the following two lines for normal desktop:
    # unset SESSION_MANAGER           去掉注释
    # exec /etc/X11/xinit/xinitrc          去掉注释
    修改完毕后重启vncserver
    vncserver -kill :1
    vncserver :1

    手工启动vnc服务,会生成xstartup文件
    修改/etc/sysconfig/vncserver文件后
    可以使用service vncserver restart 重启vnc服务
    chkconfig vncserver on

    客户端
    vncviewer -Shared:不中断已有的连接
             -ViewOnly:只读远程

    vnc适合多平台
    xmanager适合windows to linux(unix)
       linux 配置
        vim /usr/share/gdm/defaults.conf
            DisplaysPerHost=2          取消注释,动态注册两个SESSION
            Enable=true               263行,false 改成ture
            Port=177                284行,取消注释
            AllowRemoteRoot=true    214行,使root可以远程登录
            

        vim /etc/inittab
            id:5:initdefault:     设置系统运行级别为5,如果本来就是5,就不要修改
            x:5:respawn:/user/sbin/gdm    添加到最后一行
            
        重启:gdm-restart
            查看端口:ntstat -tulnp | grep 177       windows客户机连接使用            rdesktop适合linux to windows(要开启远程桌面)windows 远程桌面客户端mstsc

  • 相关阅读:
    树——题解汇总
    element ui实现手动上传文件,且只能上传单个文件,并能覆盖上传
    浏览器缓存
    websocket协议
    session
    cookie
    作用域插槽
    时间格式化函数
    Neo4j快速入门
    线性空间
  • 原文地址:https://www.cnblogs.com/Alight/p/4351356.html
Copyright © 2011-2022 走看看