linux下如何搭建ssh服务器,第1张

一般发行版默认安装、开启。

没装的话使用自带的包管理器装openssh,然后/etc/initd/sshd start,这个是最简单的

然后本地用户即可登陆

其他设置依照发行版会有些变化。

目前,远程连接服务器的类型有以下几种: 

① 文字接口的明文传输:Telnet、RSH为主,很少用到。 

② 文字接口的加密传输:以SSH为主,已经取代了上面的明文传输方式。 

③ 图形接口:XDMCP、VNC、XRDP等较为常见。 

这篇文章只为实战,不为普及概念性知识。所以我只讲解在工作中最常用到的技术SSH。关于SFTP技术和VNC技术,请查阅我的其他博客。 

好,先来看一下SSH的相关技术: 

SSH,英文全程是Secure Shell Protocol(安全的壳程序协议)。SSH是现在公司基本上都在使用的一种文字接口的加密传输技术,采用的是非对称秘钥系统。

对于SSH的原理,你们可以参考我的另外一篇博客,我把链接贴在这里: 

SSH原理

⑴来吧,我们先来查看一下sshd这个服务(这就是SSH的远程连接必须开启的服务,属于系统自带),注意,一般这个sshd服务是默认自动开启的。

如果想要重启怎么办呢? 

好吧,请看:

上面两种重启动的方法都是可以滴!

⑵直接远程登录主机的命令: 

ssh -f -o 参数 -p 非标准端口 账号@IP 命令 

其中: 

-f : 需要配合后面的命令,不登录远程主机直接发送一个命令过去 

-o 参数 : 主要的参数有: 

ConnectTimeout=秒数 : 连接等待的秒数,减少等待的时间。 

StrictHostKeyChecking=yes|no|ask:默认是ask,若要让public key主动加入到known_hosts, 则可以设置为no即可。 

-p : 如果sshd服务启动在非标准端口下,需使用此参数。

举例说明吧: 

① 直接登录到对方主机: 

如果是以root用户登录到对方主机,有如下两种登录方式:

注意:如果是普通用户登录,必须使用第二种加@的方式。

② 实现登录对方主机,执行命令后就离开的方式。例如:从远程主机上执行cat /etc/passwd命令把文件显示在本地主机上。

③ 不登录对方主机,让对方主机自己运行该命令,你立刻回到本地机器继续工作:

④ 删除known_hosts后,重新使用root连接到本机,会自动加上公钥记录

你一定会说,大骗子玩漏了吧?怎么没有自动加上公钥记录呢?怎么记录信息提示手机选择yes/no了呢?别着急,我们的“-o”参数要横空出世了!有了-o,再也不用选择yes|no了,而是自动被选择了yes而加入到~/ssh/known_hosts中。

看到了,这次没有提示让选择yes|no吧! 

⑤ SSHD服务器详细配置

Centos默认的SSHD服务其实已经算是很安全了,这里注意Centos 5X之后默认SSH协议版本都是V2也就是上图的Protocol 2,默认端口是 22,注意这些还不够,如果是真正工作中的服务器,建议取消root的登录权限:

把红框中的yes改为no就可以取消root用户的登录权限了。

下面来介绍一个很有用的技术,制作不用密码可立即登录的SSH用户。有人会说制作这个是用来干嘛的?你想一想,如果想要利用crontab来定时执行备份或者拷贝的任务,因为每次SSH连接都要输入对方主机密码,这是在crontab中无法执行的,那么怎么办?只有不需要输入密码才可以操作。 

方法如下: 

客户端建立两把钥匙 

我们在客户端创建一个用户user1操作,利用user1来远程服务器端的user2用户。下面我们以1921681118为客户端,以1921681121为服务端。 

首先在客户端建立两把秘钥 

命令如下:

需要注意: 

⑴ ~/ssh目录的权限必须是700 

⑵ id_rsa(私钥文件)的权限必须是-rw——-,且属主必须是当前登录用户,否则在未来秘钥比对的过程中,可能会被判断为危险而无法成功的以公私钥成对的机制来实现连接。 

以上两点一般情况下默认都是正确的。

② 将公钥文件数据上传至服务器端

③ 将公钥文件放置到服务器端的正确目录中,并保证文件名正确 

一定要把公钥文件内容附加到authorized_keys这个文件内,操作用户为服务器端用户

注意:切记authorized_keys这个文件的权限必须是644

        1、什么是SSH

             SSH是专门为了远程登录会话和其他网络服务提供的安全性协议,使用SSH协议可以有效的防止远程连接会话的时候出现信息泄密,在数据传输的时候SSH会先对联机的数据包通过加密技术进行加密处理,加密后在进行数据的传输,确保了传输中的安全性,SSH服务主要提供两个服务功能:一个是远程联机的SSH服务,一个是借助SSH协议来传输数据的SFTP服务

        2、SSH原理阐述

              ① 服务端开启ssh服务监听22端口

   ② 客户端发送联机请求(携带IP和端口)

   ③ 客户端服务端进行联机加密认证

   ④ 认证通过联机成功

        3、SSH的两种认证方式

              ① 基于密码口令的认证

   ② 基于秘钥的安全认证

        4、SSH认证类型阐述

              基于密码口令的方式:

     基于密码的安全认证就是我们一直在用的,只要知道服务器的SSH连接账号和密码(当然也要知道服务器的IP和端口(默认22)),就可以通过客户端远程登录到主机了,所以的传输过程都是加密的

   基于秘钥的安全认证:

     ① 运行SSH服务,生成密钥对

     ② 客户端发送公钥到服务端(通过ssh-copy-id或者其他的方式)

     ③ 客户端发送连接请求

                      ④ 服务端进行对密钥的验证

     ⑤ 验证成功服务端将用公钥加密质询,发送给客户端

     ⑥ 客户端用自己的私钥解密质询

     ⑦ 客户端将解密后的质询发送给服务端

     ⑧ 服务端验证质询

     ⑨ 验证通过,建立连接

        5、SSH联机加密过程原理阐述

补充:SSH2版本中为了修补SSH1中不验证整合秘钥对的漏洞,加入了一个确认联机正确性的Diffie-Hellman机制(每次联机都会进行秘钥对的校验)

          1、expect

          2、sshpass

          3、pssh

         ① SSH是安全加密协议,用于远程连接linux服务器

   ② SSH默认端口是22,安全协议版本是SSH2,除了SSH2还有SSH1,但是1有漏洞

   ③ SSH服务端只要包含两个服务,一个是SSH一个是SFTP

   ④ Linux SSH 客户端包含ssh远程连接命令,以及远程scp命令等

   ⑤ SSH配置文件的优化很重要,可以提高服务器的安全性,也可以提高远程连接的速度

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » linux下如何搭建ssh服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情