SSH远程配置

By | 2013年2月16日

Centos默认安装了OpenSSH,可以使用下列命令查看安装的版本:

#查看已安装的软件件包中含有ssh字样的包信息
yum list installed | grep ssh

如果显示空白,则使用下列命令安装ssh:

#安装ssh
yum install openssh*

打开配置文件:

vim /etc/ssh/sshd_config

需要修改的几个重要参数:

#禁止使用版本1的协议,仅使用版本2
Protocol 2

#禁止root登录sshd,强烈建议改为no
PermitRootLogin no

#定义sshd监听ipv4还是ipv6(默认都监听)
ListenAddress 0.0.0.0    #监听所有ipv4地址
ListenAddress ::         #监听所有ipv6地址

注:vim中 i键进入修改模式,保存退出:先按ESC 再按 :wq(即英文冒号+w+q)

启动SSHD服务

#使用service脚本启动sshd服务
service sshd start

#使用/etc/init.d/sshd启动sshd服务
/etc/init.d/sshd start

查看sshd启动运行情况

#查看sshd服务状态
service sshd status

#使用netstat查看sshd服务的端口情况
netstat -tunlp | grep ssh

#使用ps查看sshd的进程状态
ps -ef | grep ssh

设置SSHD服务开机启动

#使用chkconfig设置SSHD服务开机启动
chkconfig sshd on

#查看SSHD服务时候开机启动,将显示每个RunLevel下是否启动
chkconfig --list | grep ssh

设置hosts.allow,hosts.deny文件,控制允许连接sshd的ip

#编辑hosts.allow文件,写入允许访问ssh的ip地址
vim /etc/hosts.allow

#内容比如:
sshd:127.0.0.1
sshd:某个外网ip地址

#编辑host.deny文件,禁止所有IP访问ssh
vim /etc/host.deny

#内容为:
sshd:ALL

#最终实现的效果就是:仅允许本机和外网的一个ip可以使用ssh,其余IP全部禁止。

最后需要设置防火墙,开放sshd服务的默认端口22

#直接使用iptables命令
#-s参数可以限制源IP,如果不需要去掉即可
#-i参数定义通过哪些网卡可以对外开放SSH
#这里的em为网卡名称,后面的+(加号)表示任意字符,即em1,em2,em3都符合
#--sport参数定义源端口范围
iptables -A INPUT -s 源IP -i em+ -p tcp -m tcp --sport 1024:65534 --dport 22 -j ACCEPT

#重启iptables服务
service iptables restart