linux(CentOS7)服务器环境搭建之-openssh


openssh允许用户通过ssh访问计算机,通过配置可用秘钥配对形式登录访问,省去输入用户名和密码的烦恼,并一定程度上提高了计算机的安全性。

--安装配置ssh(允许安全的public key登录)

1.安装OpenSSH服务(CentOS系统默认安装了openssh)
yum install openssh-server -y


2.配置OpenSSH服务(默认的配置已可以正常工作)
OpenSSH的主配置文件:/etc/ssh/sshd_config


常见的配置选项
Port=22  设置SSH的端口号是22(默认端口号为22)
Protocol 2  启用SSH版本2协议
ListenAddress 192.168.0.222  设置服务监听的地址
DenyUsers   user1 user2 foo  拒绝访问的用户(用空格隔开)
AllowUsers  root osmond vivek  允许访问的用户(用空格隔开)
PermitRootLogin  no  禁止root用户登陆
PermitEmptyPasswords no  用户登陆需要密码认证
PasswordAuthentication yes  启用口令认证方式


3.重启OpenSSH服务
service sshd restart 或 systemctl restart sshd.service


4.客户端通过ssh远程连接服务器
ssh username@hostname(hostIP) 
如:ssh user1@192.168.10.10


5.设置SSH公钥登录
1>OpenSSH的主配置文件:/etc/ssh/sshd_config


修改如下配置:
RSAAuthentication yes (RSAAuthentication设置为yes,意思是设置开启使用RSA算法的基于rhosts的安全验证)
PubkeyAuthentication yes (PubkeyAuthentication设置为yes,意思是设置开启公钥验证)
AuthorizedKeyFiles .ssh/authorized_keys (AuthorizedKeyFiles后面的目录,是你上传的公钥所保存的文件)
StrictModes no (trictModes设置为no,意思是设置关闭ssh在接收登录请求之前先检查用户家目录和rhosts文件的权限和所有权)


2>重启OpenSSH服务


3>客户端生成公钥
4>服务端加入客户端公钥AuthorizedKeyFiles指定的目录下。
需要注意的是,这里的authorized_keys文件,虽然我们StrictModes设置为了no,但是还是建议修改一下文件的执行权限,比如用命令chmod 600 authorized_keys。


6.增加或修改SSH端口号
1>OpenSSH的主配置文件:/etc/ssh/sshd_config
Port=22 改为自己想要的端口号(修改端口时候最好挑10000~65535之间的端口号,10000以下容易被系统或一些特殊软件占用,或是以后新应用准备占用该端口的时候,却被你先占用了,导致软件无法运行。)


2>如果你关闭了SELinux,可以忽略第二步。


先查看SELinux开放给ssh使用的端口
semanage port -l|grep ssh  
我的系统打印如下:
ssh_port_t                    tcp      22
可知,SELinux没有给SSH开放10086端口,那么我们来添加该端口:


semanage port -a -t ssh_port_t -p tcp 10086  
完成后,再次查看


semanage port -l|grep ssh  
ssh_port_t                    tcp      22,10086


3>如果你关闭了防火墙,可以忽略第三步,话说防火墙不开启太危险了,建议开启。


先查看防火墙是否开启了10086端口:
firewall-cmd --permanent --query-port=10086/tcp  
打印结果如下:
no
表示没有开放10086端口,那么添加下该端口:


firewall-cmd --permanent --add-port=10086/tcp  
打印结果如下:
success


重新加载防火墙策略:
firewall-cmd --reload  
执行成功后,查看10086端口是否被开启:


firewall-cmd --permanent --query-port=10086/tcp  
打印结果如下:
yes


4>重启SSH服务和防火墙,最好也重启下服务器


systemctl restart sshd  
systemctl restart firewalld.service  
shutdown -r now
5>尝试通过10086端口登录SSH,或者进入该服务器直接本地访问SSH如下:
ssh root@localhost -p 10086  
如果成功,说明10086已经完全可以使用了,接下来你就可以根据上述步骤把sshd_config的Port22注释掉,SELinux和防火墙(Firewalld)关闭22端口就OK,大工造成!


7.补充说明
1>查看某端口是否被占用,以10086为例:
netstat -lnp|grep 10086  
如果没有任何打印,说明没有被占用。有打印的话,说明被占用了,一般会列出哪个进程占用。


2>查看是否开启了SELinux
sestatus -v  
如果输出结果为:
SELinux status:                 disabled
说明有打开,可以通过修改SELinux的配置开启或关闭它:


vim /etc/selinux/config  
找到:
SELINUX=disabled
修改成:
SELINUX=enforcing
重启一下,就OK。


3>semanage命令无法使用,或说找不到该命令。说明没有配置该命令,可以进行以下命令进行安装:
yum -y installpolicycoreutils-python-2.5-9.el7.x86_64  
关于它的依赖库我就不作赘述,可以百度下更全面的安装semanage教程。


4>CentOS7防火墙改为firewalld了,而不是iptables,对应的命令也请百度下,这里不作赘述。
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告