Linux 远程登录服务:ssh
  ·SSH是标准的网络协议,可用于大多数UNIX操作系统,能够实现字符界面的远程登录管理,它默认使用22号端口,采用密文的形式在网络中传输数据,相对于通过明文传输的Telnet,具有更高的安全性。
  ·SSH提供了口令和密钥两种用户验证方式,这两者都是通过密文传输数据的。
  ·不同的是,口令用户验证方式传输的是用户的账户名和密码,这要求输入的密码具有足够的复杂度才能具有更高的安全性。
  ·而基于密钥的安全验证必须为用户自己创建一对密钥,并把共有的密钥放在需要访问的服务器上。当需要连接到SSH服务器上时,客户端软件就会向服务器发出请求,请求使用客户端的密钥进行安全验证。服务器收到请求之后,先在该用户的根目录下寻找共有密钥,然后把它和发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有的密钥加密“质询”,并把它发送给客户端软件。客户端收到质询之后,就可以用本地的私人密钥解密再把它发送给服务器。这种方式是相当安全的。
  Linux下搭建ssh服务器
  本人实验平台是Fedora14 2.6.35.6
  一、安装ssh
  ssh软件由两部分组成:ssh服务端和ssh客户端。
  ssh的配置文件在/etc/ssh/目录下,其中服务端的配置文件是sshd_config,客户端的配置文件是ssh_config.
  安装ssh,在这里,只讲述通过yum安装的方法(前提是你的yum源配置正确,并且能使用):
  # yum install openssh-* -y
  //yum会自动安装所有openssh相关的软件包
  二、配置ssh服务器
  根据ssh的两种验证方式,配置两种不能安全级别的登录方式。
  ·通过口令验证方式登录
  1.用vim编辑器打开sshd_config配置文件
  # vim /etc/ssh/sshd_config
  2.对配置文件进行如下修改(根据自身实际情况可有所调整):
  Port 22  //默认使用22端口,也可以自行修改为其他端口,但登录时要打上端口号
  #ListenAddress   //指定提供ssh服务的IP,这里我注释掉。
  PermitRootLogin   //禁止以root远程登录
  PasswordAuthentication  yes  //启用口令验证方式
  PermitEmptyPassword   //禁止使用空密码登录
  LoginGraceTime  1m   //重复验证时间为1分钟
  MaxAuthTimes   3    //最大重试验证次数
  保存修改好的配置,退出。
  3.重启sshd服务
  # service sshd restart
  ·通过密钥对验证方式登录
  1.在客户端生成密钥对
  注:生成密钥对前,需切换相应用户身份。例如:当user1需要登录到服务端时,user1必须在客户端生成自己的密钥文件。其他用户也一样。
  # su - user1
  # ssh-keygen -t rsa    //生成密钥文件
  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:
  33:ee:01:7d:c3:74:83:13:ef:67:ee:d7:60:2d:e1:16 root@localhost
  # ll -a .ssh/
  总计 24
  drwxrwxrwx 2 root root 4096 10-08 19:29 .
  drwxr-x--- 21 root root 4096 10-08 19:25
  -rw------- 1 root root 1743 10-08 19:29 id_rsa     //创建的私钥
  -rw-r--r-- 1 root root 396 10-08 19:29 id_rsa.pub  //创建的公钥
  -rw-r--r-- 1 root root 790 2015-11-04 known_hosts
  2.上传公钥文件到服务器或者用U盘拷贝到服务器里
  # scp .ssh/id_rsa.pub user1@192.168.1.100:/home/user1/
  3.在服务器端,将公钥文件添加到相应用户的密钥库里
  # mkdir -p /home/user1/.ssh/       //注意,这里创建的。ssh目录权限必需是除自己外,对其他用户只读,也就是权限位设置为644,所属者与所属者组都是其用户
  # mv /home/user1/id_rsa.pub /home/user1/,ssh/authorized_keys   //由于生成的公钥名称与指定的公钥名称不符,因此需要将生成的文件名换成authorized_keys即可。
  4.修改sshd_config配置文件:
  # vim /etc/ssh/sshd_config
  PasswordAuthentication  no  //禁用口令验证方式,不能把原有的PasswordAuthentication  yes注释掉,注释后,就算没有公钥也能通过口令登录,这样不安全,而且失去了密钥验证的意义。
  RSAAuthentication yes   //启用RSA验证
  PubkeyAuthentication yes  //启用公钥验证
  AuthorizedKeysFile     .ssh/authorized_keys   //启用公钥文件位置,后面的路径是设置公钥存放文件的位置
  保存修改好的配置,退出。
  5.重启sshd服务
  # service sshd restart
  三、登录服务器
  1.Linux客户机
  # ssh 192.168.1.100   //输入服务器IP登录,不加用户名默认以root身份登录
  或者
  # ssh user1@192.168.1.100   //以user1身份登入服务器
  2.windows下使用远程登录客户端登录
  时下最流行的是putty这款登录软件,无需安装,下载下来就可以使用,简单、方便、安全!
  ·当服务器使用口令验证方式时,只需输入用户名和密码即可
  ·当服务器使用密钥验证方式时,需要作以下几步操作:
  1.下载puttygen软件,这个软件用来生成密钥对
  2.打开puttygen,在"生成的密钥类型"栏里点选“SSH-2 RSA”
  3.点击“生成”,软件自动生成密钥
  4.输入密钥密码,点击“保存私钥”。这个私钥是以后作为putty登录所必需加载的密钥信息,慎防丢失
  5.复制公钥信息,在windows下新建记事本进行保存
  6.将保存有公钥信息的记事本文件上传到服务器上,再用vim检查里面的信息是否都排成一行(注意,里面的公钥信息必需是一行,信息必需完整)
  7.将其文件命名为authorized_keys,并拷贝到相应用户家目录下的。ssh/目录里
 

Linux搭建SSH服务器的更多相关文章

  1. Linux 搭建SVN 服务器(转)

    一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中 ...

  2. Linux 搭建SVN 服务器

    一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中 ...

  3. 使用Linux搭建FTP服务器实现文件共享

    使用Linux搭建FTP服务器实现文件共享... ---------------- Linux中的文件共享:FTPVSFTPDVSFTPD虚拟用户 FTP可以用在Linux与Linux 和Window ...

  4. 原 Linux搭建SVN 服务器2

    原 Linux搭建SVN 服务器 发表于1年前(2014-08-05 17:55)   阅读(12257) | 评论(3) 31人收藏此文章, 我要收藏 赞3 摘要 Linux搭建SVN 服务器 目录 ...

  5. 原 Linux搭建SVN 服务器

    原 Linux搭建SVN 服务器 发表于1年前(2014-08-05 17:55)   阅读(12257) | 评论(3) 31人收藏此文章, 我要收藏 赞3 摘要 Linux搭建SVN 服务器 目录 ...

  6. Linux搭建SVN 服务器

    Linux搭建SVN 服务器 1          安装SVN 2          使用客户端连接 2.1       使用windows的客户端 2.2       使用Linux下的命令行 3  ...

  7. Linux搭建SVN 服务器(转)

    转自:http://my.oschina.net/lionel45/blog/298305 Linux搭建SVN 服务器 作者: 沈小然    日期:2014年 8月 5日 1          安装 ...

  8. Linux搭建SVN服务器(服务端)

    Linux搭建SVN服务器(服务端) 1 安装SVN SVN客户端:TortoiseSVN,官网下载:https://tortoisesvn.net/downloads.html(客户端) # yum ...

  9. Linux搭建DHCP服务器

    Linux搭建DHCP服务器   实验目标: 通过本实验掌握基于Linux的DHCP服务器搭建技能. 本实验包含内容为yum的认识与使用,磁盘挂载的概念与使用,DHCP原理及配置,systemctl服 ...

随机推荐

  1. Python:变量与字符串

    变量   使用dos页面进行命令的输入如下变量,进行打印: 同时,相同两个变量书写在同一行,中间用英文的“;”隔开 python中区分大小写变量 字符串   简单的说,字符串就是双引号,单引号,或者三 ...

  2. 基于Geoserver配置多图层地图以及利用uDig来进行样式配置

    在GeoServer中配置多个图层的地图相对来说很容易,其步骤为: 1. 进入geoserver 2. 配置相关的FeatureTypes 3. 配置WMS内容,进入以后,主要有以下几个地方需要命名: ...

  3. 【原】泛型-Java

    泛型是Java SE5.0中新增的新特性,通过泛型使得在代码编译的时候就能检查类型安全,并且所有的强制类型转换都是自动和隐式的,从而提高代码的重用率. Note:在JavaSE7+以后的版本中,构造函 ...

  4. CosCos2D-android 代码总结

    CosCos2D-android 学习总结 资料: Android游戏开发视频教程 Cocos-android-1代码包下载 直接上代码: MainActivity中Cocos常规写法: //coco ...

  5. java 小结3 hashcode和equals I/o问题

    我需要把星期天看的一些东西记录下来,要不然会忘记. hashCode.equals: 1)每个java对象都有hashCode和equals方法. java的终极类是object类,那么object类 ...

  6. HW5.19

    public class MyTriangle { public static boolean isValid(double side1, double side2, double side3) { ...

  7. mac使用初级

    imac使用的是login shell,所有开启一个terminal的时候,不会运行.bashrc文件,而是运行.bash_profile文件,因此只需要中home目录新建一个.bash_profil ...

  8. python 探索(四) Python CookBook 系统管理

    看CookBook就像看小说,挑感兴趣的先学习. 所以继<文本>之后,开始<系统管理>. 同样,请善用目录. 发现一个cookbook:好地址 生成随机密码 from rand ...

  9. JS获取浏览器可视区域尺寸

    本文所说的是浏览器窗口的可视区域大小,不是浏览器窗口大小,也非页面尺寸. 在没有声明DOCTYPE的IE中,浏览器显示窗口大小只能以下获取: document.body.offsetWidth doc ...

  10. robotframework-FQA

    发现是一波三折,刚开始信步漫游,就又遇上了沟,整理一下吧:  1.WebDriverException: Message: 'geckodriver' executable needs to be i ...