现如今的时代,是“云时代”,“大数据”时代,数据的管理,存放已经不是一个公司轻轻松松就能支撑起来的,很多数据库要集中存放,往往因为环境原因,服务器可能不在本公司,甚至远隔十万八千里,因此对于服务器管理员来说,来回跑去操控终端,未免有些不现实。因此远程连接是相当方便的一环,但是随之而来的安全隐患也增加了,“SSH”远程安全通道协议,是众多远程连接中应用最广泛的一种协议。本文便介绍一下该协议。
openSSH
有很多的软件都能提供ssh协议,openSSH作为一种开源的软件,被很多系统使用,本文说明的ssh皆以openSSH为例。该服务需要用户以合法的身份登录才能使用。
其配置文件为/etc/ssh/sshd_config:该文件内容较多,咱挑重要的讲:
#Port 22 默认监听端口 为了提高安全性一般可更改,但要关闭内核安全机制
...
#LoginGraceTime 2m 登陆倒计时,2分钟,到时间后自动退出
#PermitRootLogin yes 是否允许root用户登录
#StrictModes yes 严格模式:与密钥对登录有关
#MaxAuthTries 6 服务器端最多允许尝试的密码次数
#MaxSessions 10 服务器端最多允许同时登陆的ssh连接数量
#PubkeyAuthentication yes 是否启用公钥认证
...
...
AuthorizedKeysFile .ssh/authorized_keys 公钥认证数据存放位置
在实际工作环境中为了防止因为root账户的泄露而造成的服务器数据被破坏,因此禁止root用户登录是非常必要的。
用密钥对的方式登陆
传统的账号密码登陆,存在不安全的因素,比如明文的密码输入,可以被流量截取解密,以及登陆需要交互式的操作方式,对于需要使用自动化的的程序来说是不友好的。密钥对的登陆方式,一方面:采用更高级的加密算法大大提高了数据的安全性,另一方面:登陆时免交互。
设置方法:
在Linux7版本自带了密钥对的生成命令:ssh-keygen 可用用-t 指定加密算法,默认为rsa
[root@localhost ~]# 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:
SHA256:Y9lYM/4XP2waUkmBf2uTwmZrJfwKAnChdr4i8GLs6Pk root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| . .. |
| . . . . |
| + o + .. |
| . = * o.... |
| . oS o ooo o|
|. o .o. ..B.O |
| + o . . . o+.O+o|
|+ o . . . o++..|
|o+.E .o. |
+----[SHA256]-----+
看到末尾的图形字符就代表密钥已经成功生成。
该密钥存放位置在/家目录/.ssh/下
公钥文件为后缀为pub,只需要将该文件发送到要连接的目标主机即可,通常情况下可已使用命令,ssh-copy-id 目标用户@目标主机IP地址。
传送完毕后就可以通过ssh远程连接进行尝试,是否是免交互的方式。
openssh提供的远程拷贝,文件传输工具
远程拷贝工具:scp
该工具提供了下载和上传的功能,
下载:scp 目标用户@目标IP地址:下载文件的路径及文件 拷贝到本机那个位置
如果目标主机更改了监听端口则需要在scp后加上-p 指定端口
上传:scp 上传文件路径及文件 目标用户@目标IP地址:上传到目标主机那个位置
同样的目标主机改了端口也需要在scp加上-p 指定端口
远程文件传输:sftp
该工具提供了一种交互式的界面,可以方便查找文件位置。也提供了下载与上传功能。
进行下载和上传之前需要先进行连接:sftp 目标用户@目标IP地址 连接后需要输入目标用户的密码。
下载:get 加目标文件
上传:put 本地文件路径及文件
需要注意的是,下载的文件位置,是连接前的工作目录。
TCP Wrappers (tcp封装)
该服务也是一种访问控制手段,关于该服务内容较多,因此本文只介绍几种简单的使用。
第一个通过/etc/hosts.allow与/etc/hosts.deny 这两个文件可以添加相关内容来控制。
添加的选项内容如下:
以上就是简单的远程访问控制,通过种种手段,加强远程连接的安全性,方便了管理者的操作。