描述:SSH是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等。SSH协议对通信双方的数据都进行加密处理,其中包括登录时输入的用户口令,与早期的TELNET(远程登陆),RSH(远程执行命令),RCP(远程文件复制)应用相比,SSH协议提供了更好的安全性。
1、服务监听选项
Vim /etc/ssh/sshd_config (注意彩色部分要修改)
Service sshd reload重新加载服务才能生效
2、用户登录控制
通常应禁止root用户或密码为空的用户登录,另外,可以限制登录验证的时间(默认为2分钟)及最大重试次数,若超过限制后仍未登录则断开连接。
Vim /etc/ssh/sshd_config
上图中的PermitRootLogin yes是允许root登录,如果不允许把yes改为no
PermitEmptyPasswords no的意思是禁止空密码用户登录,PasswordAuthentication yes是启用密码验证。
3、登录验证方式
上图中的PubkeyAuthentication yes是启用密钥对验证,下一行是指定公钥数据库文件
4、如果希望只允许或禁止某些用户登录时,可以使用AllowUsers或DenyUsers,如果只允许某些用户,如下图:
5、使用ssh客户端程序
1)在另一台LINUX上ssh远程登录
2)ssh的端口默认是22,不安全,可以修改端口
修改完配置文件别忘了重启sshd服务
在客户机上连接的时候需要加上端口
3)远程连接到服务器之后,可以使用scp远程复制的方法在服务器和客户机之间传递文件。
例如:将远程主机中的/etc/passwd文件复制到本机,并将本机的/etc/vsftpd目录复制到远程主机。
在客户端192.168.1.2上执行以下命令:
然后在192.168.1.1上查看/opt下有没有/etc/vsftpd
4)通过sftp命令可以利用SSH安全连接与远程主机上传,下载文件,采用了类似于ftp的方式。
上传文件如下图:
然后到ssh服务器上的root宿主目录查看
6、在windows客户端上使用图形工具xshell连接服务器
安装后新建会话,输入用户名和密码即可连接,如下图:
7、构建密钥对验证的SSH体系(这种验证方法更安全)
实验环境:一共两台linux,一台ssh客户机192.168.1.2,另一台linux服务器192.168.1.1
1)在客户端创建密钥对
执行命令之后一路回车
2)将公钥上传到服务器
3)在服务器中导入公钥文本
4)在客户端使用密钥对验证(验证之前别忘记在sshd主配置文件中允许xiaohong)
8、配置tcp wrappers访问控制谭宏
tcp wrappers机制针对访问服务的客户机地址进行访问控制,对应两个策略文件/etc/hosts.allow和/etc/hosts.deny,分别用来设置允许和拒绝策略。
策略的应用顺序:首先检查/etc/hosts.allow文件,如果找到匹配策略,则允许访问,否则继续检查/etc/hosts.deny文件,如果找到匹配,则拒绝,如果上述两个文件都找不到匹配的策略,则允许访问。
例如:允许192.168.1.2的主机或者192.168.2.0的网段访问sshd,其他地址被拒绝,执行以下操作。
1)vim /etc/hosts.allow
2)vim/etc/hosts.deny
3)在客户端上修改ip为192.168.1.200,测试连接失败
4)把客户端的ip改回到192.168.1.2之后,成功连接。
本文转自 宏强 51CTO博客,原文链接:http://blog.51cto.com/tanhong/1900362