CentOS下SSH配置方法详解

CentOS下SSH配置方法详解

www.111cn.net  编辑:phper  来源:转载

ssh是linux系统中一个常用的远程管理工具了,比ftp要强大的我,下面小编来给大家在centos中ssh配置方法吧,希望此教程对各位同学会有所帮助。


SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。

传统的网络服务程序,如FTP、POP和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。

而 SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。透过 SSH 可以对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗。

 

系统及版本:CentOS release 5.3 (Final)

安装SSH

yum install ssh

启动SSH

service sshd start
设置开机运行


chkconfig sshd on

SSH相关配置文件的修改
 

首先修改SSH的配置文件。如下:


[root@sample ~]# vi /etc/ssh/sshd_config  ← 用vi打开SSH的配置文件
 

#Protocol 2,1 ← 找到此行将行头“#”删除,再将行末的“,1”删除,只允许SSH2方式的连接
 
Protocol 2 ← 修改后变为此状态,仅使用SSH2

#ServerKeyBits 768 ← 找到这一行,将行首的“#”去掉,并将768改为1024
 
ServerKeyBits 1024 ← 修改后变为此状态,将ServerKey强度改为1024比特

#PermitRootLogin yes  ← 找到这一行,将行首的“#”去掉,并将yes改为no
 
PermitRootLogin no  ← 修改后变为此状态,不允许用root进行登录

#PasswordAuthentication yes ← 找到这一行,将yes改为no
 
PasswordAuthentication no ← 修改后变为此状态,不允许密码方式的登录

#PermitEmptyPasswords no  ← 找到此行将行头的“#”删除,不允许空密码登录
 
PermitEmptyPasswords no  ← 修改后变为此状态,禁止空密码进行登录

然后保存并退出。(vi保存退出的命令为ZZ)

因为我们只想让SSH服务为管理系统提供方便,所以在不通过外网远程管理系统的情况下,只允许内网客户端通过SSH登录到服务器,以最大限度减少不安全因素。设置方法如下:


[root@sample ~]# vi /etc/hosts.deny  ← 修改屏蔽规则,在文尾添加相应行

#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!

sshd: ALL  ← 添加这一行,屏蔽来自所有的SSH连接请求

[root@sample ~]# vi /etc/hosts.allow  ← 修改允许规则,在文尾添加相应行

#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#

sshd: 192.168.0.  ← 添加这一行,只允许来自内网的SSH连接请求

netstat -tunlp 查看正在运行的端口号!vim /etc/ssh/sshd_config这个文件,这里把#Port 22这个字段前面的#去掉,再把22改成自己要设的端口就行了,然后重启ssh服务。/etc/init.d/sshd restart                假如要限制SSH登陆的IP,那么可以如下做:修改/etc/hosts.deny,在其中加入sshd:ALL修改:/etc/hosts.allow,在其中进行如下设置:sshd:192.168.0.24这样就可以限制只有192.168.0.241的IP通过SSH登陆上LINUX机器了

SSH远程连接配置


1.配置IP

#setup

选择 NetWork configuration

选择 Device configuration

选择 eth0

Use DHCP [*] 改 为 [ ]   用空格键将*去除

Static IP 输入 192.168.1.112

Netmask 输入 255.255.255.0

Default  gateway IP 输入 192.168.1.1

Primary DNS Server 输入 192.168.1.1

 
2.改SSH端口

vim /etc/ssh/sshd_config

#Port 22

去#注释 改 22 为 2200(2000以上)

 

3.重启SSH

/etc/init.d/sshd restart

 

4.重启网络

service network restart

/etc/init.d/network restart

 

5.查看端口

netstat -lnp|more

 

6.关防火墙

/etc/init.d/iptables stop

启动SSH

/etc/init.d/sshd start

 至此SSH已经可以连接了

输入连接IP

CentOS下SSH配置方法详解_第1张图片

配置相关参数

CentOS下SSH配置方法详解_第2张图片

选择utf-8支持中文显示

CentOS下SSH配置方法详解_第3张图片

自动输入登录用户root

CentOS下SSH配置方法详解_第4张图片

输入用户名后就可以连接到服务器

 

但是目前我们的SSH连接还需要输入密码,下面将介绍使用密钥进行连接,免去了输入密码的烦恼:

1、在被管理机上生产密钥

[root@localhost ~]# mkdir /root/.ssh
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):   ##直接回车默认路径
Enter passphrase (empty for no passphrase):                ##输入密码短语
Enter same passphrase again:                               ##重复密码短语
Your identification has been saved in /root/.ssh/id_rsa.   ##如果在这里报错是因为SeLinux引起的按照Policy:yum install selinux-policy
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
aa:76:71:1e:51:fe:3b:4c:51:30:b2:90:55:e9:58:7c [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|        .ooo+o   |
|        ...o+.E  |
|         o.+ o   |
|        . o o    |
|        S. . .   |
|      ..o   o    |
|      .+ . o .   |
|    ... .   +    |
|   ...       .   |
+-----------------+

2、putty生产密钥

打开puttygen,如果没有该程序可以到putty官方网站下载。

点击Generate按钮后出现下图,在红框中不断移动鼠标知道密钥生成完成

点击Generate按钮后出现下图,在红框中不断移动鼠标知道密钥生成完成

CentOS下SSH配置方法详解_第5张图片

 

上面的大红框就是我们生成的公钥、这个公钥用于放在被管理服务器上,而私钥放在自己的机器上。

Key comment是一个备注信息,如果是企业环境那么会有很多的公钥在一台机器上,为了识别的话一般都会根据每个人的自己定义一个备注。

可以使用邮箱或者工号,输入Key comment先复制下公钥,并点击Saved public Key 和 Saved Private Key保存两个密钥

CentOS下SSH配置方法详解_第6张图片

接着打开密钥代理工具pageant.exe(同样可以在putty的官网下载),使用pageant.exe有一个很大的好处,如果你还需要使用putty的其他工具那么他们可以共享密钥验证,而不需要反复去设置密钥。

任务栏的pageant.exe图标右键选择view keys打开下面窗口。

CentOS下SSH配置方法详解_第7张图片

点击Add key添加刚才保存的私钥。

3、被管理机密钥部署

将被管理机上刚才生产的id_rsa.pub复制成authrized.keys

[root@localhost .ssh]# cp id_rsa.pub authrized.keys
[root@localhost .ssh]# chmod 600 authrized.keys      ##这一步是必须的,否则连接不上修改vi /root/.ssh/authrized.keys 删除原来的密钥,添加puttygen.exe生产的密钥(也就是前面复制的公钥)


sh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAh+gDpVSNIwBHZvmHS240AoueNHIgDHhczQ/fhiN/IdAQVdh7Ovw2pnJ4sd6so0kqCizsU7FOu2rvaK7vHC3QrrYmeqn94V595pYGLnMCbtEd7ONew47TU8wjtdldbc7liEmkTVIdkCbbrzQa372/u2LSjkldu2BUiXkevlnGNUc= hellwen.wu
~
~
~
~保存退出。

4、打开putty登录

CentOS下SSH配置方法详解_第8张图片

注意看上图中红色部分,如果你是经常连接这台机器的话建议输入IP并配置要后再Saved Sessions里输入识别名称并点击保存按钮,这样在列表框中就会长期保留该服务器的连接配置。

CentOS下SSH配置方法详解_第9张图片


你可能感兴趣的:(CentOS下SSH配置方法详解)