搭建SSH服务器

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/目录里

原创文章,作者:sunhao,如若转载,请注明出处:http://www.178linux.com/82580

(0)
sunhaosunhao
上一篇 2017-07-24 08:36
下一篇 2017-07-24 15:38

相关推荐

  • 马哥教育网络班21期+第14周课程练习

    iptables关键点 表:filter(过滤,防火墙);nat(网络地址转换);mangle(拆解报文,做出修改,封装报文);raw(关闭nat表启用的链接追踪机制);上述是根据功能来区分的,写规则要明白要实现的功能 链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING 数据流向:流入PREROUTING–…

    Linux干货 2016-08-26
  • CentOS程序包管理

    对于Linux系统而言,其能执行的程序为二进制格式,而对于程序开发者而言,直接利用二进制开发程序是不太现实的,所以一般都是利用高级语言来进行软件开发,其程序也即称为源代码;那么我们在对一个程序进行安装、升级、卸载、 查询、校验等操作时,需要对每个源代码进行编译成为二进制程序,那么显然是不太现实的。所以在各Linux发行版中一般都带有程序包管理器。 所谓程序包…

    Linux干货 2016-08-25
  • Linux之任务计划 crontab

    Linux之任务计划    用过windows的同学应该都知道在控制面板中有一个“任务计划”选项,我们可以通过向导设置让计算机在某个时间点或者开机时运行某个脚本或者批处理等等,方便我们的日常管理监视工作;同样在Linux系统中,如果我们想在开机时就运行某个操作,可以直接将命令写入/etc/rc.local中,该操作就会在机器开机时运行;如…

    Linux干货 2015-05-18
  • ps/top/htop/dstat命令的使用说明

    ps命令参数说明       ps命令是一种静态显示进程(process)状态的外部命令,获取的是某一个时间点的状态信息,其常用选项参数如下:         -A:all process信息    …

    Linux干货 2016-12-16
  • 初识Linux之——Linux是如何诞生的

    初识Linux之——Linux是如何诞生的 对于大多数初次接触Linux的童鞋,可能会非常好奇什么是Linux?它是做什么的?为什么那么多高手都喜欢Linux?Linux是如何产生出来的呢?本文将为大家解答释疑,让大家对Linux有一个清晰的概念。 Linux是什么 简单来说,如Windows7、Windows10、安卓、IOS等,Linux是一个计算机操作…

    Linux干货 2016-10-14
  • 在软raid10上使用LVM,并且进行磁盘配额,最后还原。

    实验环境 1)centos 7.3 2)lvm格式化的文件系统为ext4 3)磁盘为单一磁盘的不同分区 4)使用软件:mdadm,lvm2 tools,quota 软raid10的创建 一,两个raid1的创建 1)对磁盘进行分区,使用工具fdidk,每个大小为1GB,类型改为fd。我的分区情况:/dev/sda{6,7,8,9}将会拿来做为raid的磁盘。…

    Linux干货 2017-03-16