Linux之路 — SSH篇

来源:互联网 发布:易碎贴纸淘宝 编辑:程序博客网 时间:2024/05/01 01:37

 转载自庆亮的博客-webgame架构

本文链接地址: Linux之路 — SSH篇

       需要的windows软件:SecureCRT,WinSCP

一、前言

        即使Linux本身的安全性已经相当好,我们仍然需要在实际操作中关注某些安全要点。目前大部分的Linux管理都采用远程控制来进行,如果保证远程控制中数据的安全是一个合格的linux管理员必须熟悉的技能。

        各种黑客行为、尝试给我们的网络带来了大量的破坏,但不可否认这些行为和尝试也给计算机安全带来了极大的促进。从理论上来说,网络传输中任何对称加密算法都是不安全的,所以我们在日常的linux管理中应该采用非对称加密算法来进行权限验证。SSH是一种加密传输数据的方式(不同于telnet等的明文数据传输),是目前最通用的linux远程安全控制方案,它提供两种认证方式:密码认证和密匙认证。关于非对称加密的相关知识请看http://baike.baidu.com/view/554866.htm

       本文以Centos 5.3 为例并假设你已经有一个安装好的Linux主机或者虚拟机,我这里采用的是虚拟机。

二、用户配置

平时我们为了安全一般不采用root直接登录到服务器,实际上多数的维护操作并不需要root权限,过多的权限可能只会带来更多的麻烦,通常我们只在需要时才su。那么如何进行日常的维护操作呢?

1. 添加一个用于维护的账号, # useradd centosadmin, 为centosadmin设置密码, # passwd centosadmin,请记好你的密码

2.将该用户添加到wheel组。为什么? 为了操作安全,我们需要只有某个特殊的用户组中用户输入了su -,并且有正确的root密码时才能获得root shell,而其他组的用户即使输入了正确的root密码,也无法获得su shell,而这个特殊的组通常为wheel,这仅仅是一个惯例,你可以自己添加一个组来实现这个功能。

3.配置只有wheel组的用户能够通过su 获得root shell。 # vim /etc/pam.d/su

取消这一行的注释  auth required pam_wheel.so use_uid,然后保存退出

这时可以测试发现,非wheel已经无法通过su获得root shell了。

 

三、密匙

1. # su centosadmin,输入你的密码。 # cd ~ 进入centosadmin的主目录, 建立 .ssh目录(为什么?) 

2. # ssh-keygen -t rsa ,表示使用SSH2协议生成RSA公匙和私匙。

你将看到这行提示  

Enter file in which to save the key (/home/centosadmin/.ssh/id_rsa):

如无特殊需要直接回车即可,然后是设置你的密匙口令

Enter passphrase (empty for no passphrase):

这个是在之后的密匙登录SSH时会用到,一定要记住。

3. 这时你的/home/centosadmin/.ssh/下应该有如下的两个文件

id_rsa  id_rsa.pub

分别是私匙和公匙文件。

4. 下载密匙到本地。  windows下打开winscp(没有这个工具?去下载吧),操作很简单,和FTP工具类似,登录后会自动进入对应用户的主目录

id_rsa  id_rsa.pub

都下载到你的本地。

5.重命名公匙文件 #mv id_rsa.pub authorized_keys

 

四、SSH配置

       1.打开SecureCRT, 登录到linux,现在还没有配置SSH,而SSH默认是密码认证的方式验证的,所以直接输入用户名密码即可。

       2.如果你是非root用户登录,请在连接终端下输入 su – 获得root权限,因为SSH的配置需要有管理员权限。

      3. 开始编辑ssh的配置文件

       [root@localhostCentos ~]# vim /etc/ssh/sshd_config

      4.一次修改配置如下

PermitEmptyPasswords no代表不允许空密码登录

PasswordAuthentication no 代表不采用密码认证方式

PubkeyAuthentication yes 表示采用key文件方式认证

AuthorizedKeysFile    .ssh/authorized_keys 表示对用用户的公匙文件放置的位置,文件默认相对的是对应用户的主目录。(看到这里我们就明白了为什么我们上面的操作中要建立.ssh目录,要重命名公匙文件了)

PermitRootLogin no 表示不允许root直接远程登录(这一部分之后会说明)

重启SSHD服务,你可以通过下面的命令完成。 # /etc/rc.d/init.d/sshd restart 或者 # service sshd restart

五、登录
1.  退出当前的所有连接,重新登录Linux主机,记住前面我们已经设置不允许root直接远程,而是用centosadmin这个管理账号来登录。

2.SecureCRT提示你需要公匙文件,选择你的公匙文家,如果一切正常,此时会提示你输入你的密匙口令(还记得在哪里设置的吗?),OK!已经进入了。此时你的权限是centosadmin的用户权限,可以试试通过su看看能不能获得root shell。

 

六、文件传输

为了安全我们通常关闭所有不必要的服务,如果不需要频繁的传输大文件,利用SSH来传输文件是个非常安全的选择。需要工具 winscp和putty 的key-gen,为什么又多了一个工具?因为winscp是无法直接使用我们在服务器生成的密匙文件的, 需要使用putty的key-gen将我们现有的密匙文件转化成ppk格式。

打开PuTTYGen,选择load,文件类型选择all files,选择你从服务器上下载的私匙文件,这时会要求你输入密匙口令:

确认密码后弹出

点击确定,点击 save private key,保存ppk文件到你本地(U盘最佳)。

打开WINScp,密匙选择你刚刚保存的ppk文件

登录,再次要求输入密匙口令,输入口令,OK!


原创粉丝点击