ssh远程管理
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的 Telent(远程登录)、RSH(Remote Shell,远程执行命令)、RCP(Remote File Copy,远程文件复制)等应用相比,SSH 协议提供了更好的安全性。
本节将以 OpenSSH 为例,介绍 Linux 服务器的远程管理及安全控制。OpenSSH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。关于 OpenSSH 项目的更多内容可以访问其官方网站 http://www.openssh.com
配置Openssh服务端
在 CentOS 7.3 系统中,OpenSSH 服务器由 openssh、openssh-server 等软件包提供(默认已安装),并已将 sshd 添加为标准的系统服务。执行“systemctl start sshd”命令即可启动 sshd 服务,包括root 在内的大部分用户(只要拥有合法的登录 Shell)都可以远程登录系统。
sshd 服务的默认配置文件是/etc/ssh/sshd confg,正确调整相关配置项,可以进一步提高sshd 远程登录的安全性。下面介绍最常用的一些配置项,关于sshd config 文件的更多配置可参考 man 手册页。
服务监听选择
sshd服务使用的默认端口号为22,,必要时建议修改此端口号,并指定监听服务的具体IP 地址,以提高在网络中的隐蔽性。除此之外,SSH 协议的版本选用 V2比V1 的安全性要更好,禁用 DNS 反向解析可以提高服务器的响应速度。
vim /etc/ssh/sshd_config
port 22 //监听端口为22
ListenAdderss 172.16.16.22 //监听地址为172.16.16.22
...... //省略部分内容
UseDNS no //禁用DNS反向解析
systemctl restart sshd
用户登陆控制
sshd 服务默认允许 root 用户登录,但在 Internet 中使用时是非常不安全的。普遍的做法如下:先以普通用户远程登入,进入安全Shel环境后,根据实际需要使用su命令切换为 root 用户
关于 sshd 服务的用户登录控制,通常应禁止 root用户或密码为空的用户登录。另外,可以限制登录验证的时间(默认为2分钟)及最大重试次数,若超过限制后仍未能登录则断开连接。
vim /etc/ssh/sshd_config
LoninGrace Tinme 2m //登录验证时间为2分钟
PermitRootLogin no //禁止root用户登录
MaxAuthTries 6 //最大重试密码次数6
PermitEmptyPasswords no //禁止空密码用户登
....... //省略部分内容
systemctl restart sshd
登陆验证方式
对于服务器的运城管理,除了用户账号的安全控制以外,登录验证的方式也非常重要。
sshd 服务支持两种验证方式--密码验证、密钥对验证,可以设置只使用其中一种方式,也可以两种方式都启用。
密码验证:对服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户端角度来看,正在连接的服务器有可能被假冒:从服务器角度来看,当遭遇密码穷举(暴力破解)攻击时防御能力比较弱。
密钥对验证:要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,大大增强了远程管理的安全性。该方式不易被假冒,且可以免交互登录,在Shell 中被广泛使用。
当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求较高的服务器,建议将密码验证方式禁用,只允许启用密钥对验证方式;若没有特殊要求,则两种方式都可启用。
vim /etc/ssh/sshd_config
PasswordAuthentication yes //启用密码验证
PubkeyAuthentication yes //启用密钥验证
AuthorizedKeysFile ..ssh/authorized_keys //指定公钥库文件
...... //省略部分内容
systemctl restart sshd 重启sshd
客户端连接服务器
命令程序 ssh scp
要关闭内核seten(Tab可补出来)后面跟上0
测试阶段可关闭防火墙 systemctl stop firewalld
ssh 192.168.10.101 直接跟上服务器IP
服务器该端口号的话:ssh -o port=1234 192.168.10.101
scp root@192.168.10.101:/etc/passwd /root/pwd 下载文件
scp /root/passwd/ root@192.168.10.101:/root 上传文件
sftp root@192.168.10.101
sftp>get 下载
sftp>put 上传
在客户端创建密钥对
ssh-keygen -t ecdsa打开一直回车 也可以这设置密钥密码
在root用 ls -a
可查看到:.ssh
cd .ssh ls查看
里面有个公密钥和私密钥
公密钥:id_rsa.pub
私密钥:id_rsa
将公密钥复制到用户中
ssh-copy-ip 192.168.10.101
最终就与用户创建了密钥对
作用:下次登陆不用输密码