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

linux——ssh服务的更多相关文章

  1. Linux ssh服务

    关于ssh服务不多说就提几句,1,机房的服务器一般都是通过远程连接登录的,远程登录就必然少不了ssh客户端.2,虚拟机每次都要点击进去,每次退出来也需要按Ctrl+Alt+Enter,也比较麻烦,有时 ...

  2. 查看linux ssh服务信息及运行状态

    关于ssh服务端配置有不少文章,例如 linux下ssh服务配置,这里仅列举出一些查看ssh服务相关信息的常用命令. rpm -qa | grep ssh 可以看到系统中ssh安装包 rpm -ql ...

  3. Linux SSH 服务

    本篇写一些关于Linux网络中SSH服务的相关知识. 测试环境 名称 IP地址 host01 192.168.28.128 host02 192.168.28.129 host03 192.168.2 ...

  4. linux ssh 服务优化

    linux 默认管理员 root,port 端口号是 22,为了安全,我们要改掉默认的管理员和端口 配置文件/etc/ssh/sshd_config [root@oldboy ~]# vi /etc/ ...

  5. 记一次 java 连接 linux ssh服务 权限验证失败的原因和解决过程

    下面的问题我是通过之前的ssh测试类找出原因的,因为我的测试类跑通了,但是程序跑不通,看了一下源码发现还有一处没有进行解密,所以才会权限验证失败. // 出现权限验证失败的原因就在这里,因为老板要求对 ...

  6. Linux ssh服务开启秘钥和密码认证

    问题描述: 实现Linux秘钥和密码同时认证 解决方案: vim /etc/ssh/sshd_config 基本参数: PermitRootLogin yes #允许root认证登录 Password ...

  7. ssh服务、密钥登陆配置

    环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:2 ...

  8. SSH服务及其扩展(sshpass和expect)

    SSH服务及其扩展(sshpass和expect) Linux SSH服务一共包含三个工具:ssh.scp.sftp [远程连接及执行命令] 语法:ssh -p端口 账号@IP 命令 参数说明:-o ...

  9. Linux mint 18版本开启SSH服务

    linux mint 18版本默认是没有安装ssh server的 需要手动安装 安装ssh server: 此命令需要联网,会自动下载安装 安装之后看是否开始了ssh, 看到ssh-agent 和s ...

随机推荐

  1. ibeacon的使用和应用场景简单示例

    目的,用ibeacon实现签到功能,不需要太严谨,只是试水. 拿到ibeacon的第一感觉是,这东西能用嘛,2-3年的电池,后面商家说是用个3M双面胶找个地方一贴就行,感觉不太靠谱,嘿嘿,在网上找了一 ...

  2. JavaScript作用域学习笔记

    重点知识点摘要 一 函数对象和其它对象一样,拥有可以通过代码访问的属性和一系列仅供JavaScript引擎访问的内部属性 其中一个内部属性是[[Scope]],由ECMA-262标准第三版定义,该内部 ...

  3. python的复制,深拷贝和浅拷贝的区别

    在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 一般有三种方法, alist=[1,2,3,[& ...

  4. python数据结构与算法——归并排序

    归并排序: 原理与C语言实现 参考:白话经典算法系列之五 归并排序的实现 1. 容易对有序数组A,B进行排序. 2. 为了使得A,B组内数据有序:可以将A,B组各自再分成二组. 3. 经过不断分组,当 ...

  5. 腾讯优测-优社区干货精选 | android开发在路上:少去踩坑,多走捷径(下)

    文/腾讯公司 陈江峰 优测小优有话说: android开发的坑自然是不少,不想掉坑快来优测优社区~ 6.Android APP开发中其它需要提醒的问题 android4.4在UI线程无法进行网络操作. ...

  6. LintCode First Position of Target

    找指定target的最左位置. class Solution { /** * @param nums: The integer array. * @param target: Target to fi ...

  7. mm/memory

    /* *  linux/mm/memory.c * *  Copyright (C) 1991, 1992  Linus Torvalds */ /* * demand-loading started ...

  8. SQL数据库的十条命令

    --(1)查询每个总学时数 select GradeId,SUM(classHour) from subject group by GradeId order by(SUM(classHour)) - ...

  9. Apache配置代理服务器的方法(2)

    Proxy指令后面的*号表示客户端使用代理服务器访问的目的地址.在上面两个例子中,*号表示所有地址,即禁止使用代理服务器访问所有地址.而如果想仅禁止某一些地址时,可以参考下面的例子: Order de ...

  10. linux 给文件夹权限

    用的thinkphp3.2的框架,在本地运行没有问题,部署到服务器上(基于centos的LAMP环境)即报错_STORAGE_WRITE_ERROR_:./Application/Runtime/Ca ...