具体操作如下:
1.安装openssh-server程序
2.配置SSHyum install openssh-server安装SSH服务程序
vim /etc/ssh/sshd_config 打开配置文件
查看是否存在如下信息,如下规则没有则自行添加
#Port 22 监听的端口号,默认是22,自定义更安全。
#Protocol 2 支持的协议,默认就好,不用修改
#PermitRootLogin yes 是否允许root直接登录,最好设置为no
#MaxAuthTries 6 最大登录数,默认是6,建议改小,防止穷举攻击。
3.开启ssh服务,两个命令任选其一
service sshd start
/etc/rc.d/init.d/sshd restart
经过上面的操作之后,在主机中用Secure File Transfer Client 登陆失败,但在虚拟机中可以用SSH 192.168.10.133可以登陆自己。Secure File Transfer Client 给出的提示信息是“待连接主机的防火墙是否开启”。想到之前在开发网站的微博认证接口时由于SSL 22号端口没有打开一直无法进行Https认证,后来才发现原来是linux下的防火墙iptables限制了端口连接,所以需要开启SSH对应的端口号,才能保证SSH连接的正常。
iptables有五种规则表
prerouting:路由之前
input:本地进来
output:本地出去
forward:转发
postrouting:路由之后
具体的规则编写可以参考iptables官网文档,常用到的是限制IP、限制端口功能。这里我们只需要执行如下操作,打开fedora的SSH端口即可,
有两种方法来实现
1.直接运行如下命令,重启虚拟机则失效,需要重新运行命令
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables-save
2.修改/etc/sysconfig/iptables 文件,重启也能生效
#vi /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT#添加在文件的末尾,COMMIT语句之上
service iptables restart
切记,网上好多人都说执行如下命令可以打开22号端口,经验证,该命令无法打开22号端口,千万不要被误导。在/etc/sysconfig/iptables中添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
service iptables restart
#或者直接运行
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables-save
注:如果你嫌配置iptables麻烦,在确保虚拟机安全的情况下可以直接通过如下命令关闭iptables,
service iptables stop
当然这种方法可能导致虚拟机安全受到威胁,易受到网络攻击。