在实际生产环境中,不可能一直在服务器本地对服务器进行相应的管理,大多数企业服务器都是通过远程登录的方式进行管理的。当需要从一个工作站管理数以百计的服务器主机时,远程维护的方式将更占优势。
SSH 简介SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行加密处理,其中包括用户登录时输入的用户口令。比以往的Telnet(远程登录)、RSH(远程执行命令)等传统的方式相比,SSH协议提供了更好的安全性。
一、配置OpenSSH服务端OpenSSH是实现SSH协议的开源软件项目。在CentOS 7.3系统中。OpenSSH服务器由openssh、openssh-server等软件包提供(默认已安装),并已将sshd添加为标准的系统服务。
1.服务监听选项sshd服务使用的默认端口号为22,必要时建议修改此端口号,并指定监听服务的具体IP地址,以提高在网络中的隐蔽性。除此之外,SSH协议的版本选用v2比v1的安全性要更好,禁用DNS反向解析可以提高服务器的响应速度。
[root@localhost ~]# vim /etc/ssh/sshd_config //修改sshd服务的主配置文件 ………… //省略部分内容 Port 22 //监听端口为22 ListenAddress 0.0.0.0 //监听地址为0.0.0.0,表示全部监听 Protocol 2 //使用SSH v2的版本 UseDNS no //禁用DNS反向解析,提高响应速度 ………… //省略部分内容 [root@localhost ~]# systemctl restart sshd //重新启动sshd服务 2.用户登录控制sshd服务默认允许root用户登录,但在网络中是很大的安全隐患,普遍的做法是普通用户,然后切换到root用户。
[root@localhost ~]# vim /etc/ssh/sshd_config //修改sshd服务的主配置文件 ………… //省略部分内容 LoginGraceTime 2m //登录验证时间为2分钟 PermitRootLogin no //禁止root用户登录 MaxAuthTries 6 //最大重试次数为6次 PermitEmptyPasswords no //禁止空密码登录 ………… //省略部分内容 [root@localhost ~]# systemctl restart sshd //重新启动sshd服务当希望只允许或禁止某个用户登录时,可以使用AllowUsers或DenyUsers配置,两者用法类似(但是注意不要同时使用)。例如允许xiaoli和xiaozhang用户登录,且其中xiaozhang用户仅能从IP地址为192.168.1.2的地址远程登录。
[root@localhost ~]# vim /etc/ssh/sshd_config //修改sshd服务的主配置文件 ………… //省略部分内容 AllowUsers xiaoli xiaozhang@192.168.1.2 //多个用户之间用空格进行分隔 [root@localhost ~]# systemctl restart sshd //重新启动sshd服务 3.登录验证方式 sshd服务支持两种验证方式: 1.密码验证:对服务器中的本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但是系统用户密码存在可能遭遇密码穷举(暴力破解); 2.密钥对验证:要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥,然后将公钥文件存放到服务器指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密验证,这种方式不易被假冒,且可以免交互登录,在Shell中被广泛应用。当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证!没有特殊要求,建议两种方式都启用!
[root@localhost ~]# vim /etc/ssh/sshd_config //修改sshd服务的主配置文件 ………… //省略部分内容 PasswordAuthentication yes //启用密码验证 PubkeyAuthentication yes //启用密钥对验证 AuthorizedKeysFile .ssh/authorized_keys //指定公钥库文件 ………… //省略部分内容 [root@localhost ~]# systemctl restart sshd //重新启动sshd服务 二、使用SSH客户端程序在CentOS 7.3系统中,OpenSSH客户端由openssh-clients软件包提供(默认已安装),其中包括ssh远程登录命令,以及scp、sftp远程复制和文件传输命令等。
1.命令程序(ssh、scp、sftp)应用 1)ssh远程登录通过ssh命令可以远程登录sshd服务,为用户提供一个安全的Shell环境,以便对服务器进行管理和维护!
[root@kehuduan ~]# ssh xiaozhang@192.168.1.1如果sshd服务器使用非默认的端口号(比如2222)则需要使用“-p”选项指定端口号。 [root@kehuduan ~]# ssh -p 2222 xiaozhang@192.168.1.1 xiaozhang@192.168.1.1's password: //输入密码 [xiaozhang@fuwuduan ~]$ //登录成功 2)scp远程复制 [root@kehuduan ~]# scp root@192.168.1.1:/etc/passwd /mnt //从服务器下载文件 root@192.168.1.1's password: passwd 100% 2360 2.3KB/s 00:00 [root@kehuduan ~]# scp 123.txt root@192.168.1.1:/mnt //从客户端上传文件 root@192.168.1.1's password: 123.txt 100% 0 0.0KB/s 00:00
如果需要指定端口,使用“-P”选项!
3)sftp安全FTP