当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > CentOS下用OpenSSH构建SSH服务器

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 CentOS下用OpenSSH构建SSH服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 77 ::
收藏到网摘: n/a

前言


SSH服务和Telnet服务一样,通过远程登录登录到系统,在远程操控系统。但它与Telnet的不同点就是:Telnet在传输的过程中是平文传输,而SSH是将传输内容加密,在传送的过程中保证了传送内容的保密性,从而提高了系统的安全性。

在这里,我们不准备将SSH服务作为用户上传下载文件的工具。我们只用SSH服务的开通为远程管理系统提供方便。另外在用户认证方式上,为了服务器和用户的安全,禁止用户密码的认证方式,而基于“钥匙”的方式。
SSH相关配置文件的修改
  首先修改SSH的配置文件。如下:

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

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

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

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

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

#PermitEmptyPasswordsno ←找到此行将行头的“#”删除,不允许空密码登录
 ↓
PermitEmptyPasswordsno ←修改后变为此状态,禁止空密码进行登录
然后保存并退出。(vi保存退出的命令为ZZ)

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

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

#
#hosts.denyThisfiledescribesthenamesofthehostswhichare
#*not*allowedtousethelocalINETservices,asdecided
#bythe'/usr/sbin/tcpd'server.
#
#Theportmaplineisredundant,butitislefttoremindyouthat
#thenewsecureportmapuseshosts.denyandhosts.allow.Inparticular
#youshouldknowthatNFSusesportmap!

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

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

#
#hosts.allowThisfiledescribesthenamesofthehostswhichare
#allowedtousethelocalINETservices,asdecided
#bythe'/usr/sbin/tcpd'server.
#

sshd:192.168.0. ←添加这一行,只允许来自内网的SSH连接请求
重新启动SSH服务
  在修改完SSH的配置文件后,需要重新启动SSH服务才能使新的设置生效。

[root@sample~]#/etc/rc.d/init.d/sshdrestart ←重新启动SSH服务器

Stoppingsshd:[OK]
Startingsshd:[OK] ←SSH服务器重新启动成功
这时,在远程终端(自用PC等等)上,用SSH客户端软件以正常的密码的方式是无法登录服务器的。为了在客户能够登录到服务器,我们接下来建立SSH用的公钥与私钥,以用于客户端以“钥匙”的方式登录SSH服务器。

SSH2的公钥与私钥的建立
  登录为一个一般用户,基于这个用户建立公钥与私钥。(这里以centospub用户为例)

[root@sample~]#su-centospub ←登录为一般用户centospub

[centospub@sample~]$ssh-keygen-trsa ←建立公钥与私钥
Generatingpublic/privatersakeypair.
Enterfileinwhichtosavethekey(/home/kaz/.ssh/id_rsa): ←钥匙的文件名,这里保持默认直接回车
Createddirectory'/home/kaz/.ssh'
Enterpassphrase(emptyfornopassphrase): ←输入口令
Entersamepassphraseagain: ←再次输入口令
Youridentificationhasbeensavedin/home/kaz/.ssh/id_rsa.
Yourpublickeyhasbeensavedin/home/kaz/.ssh/id_rsa.pub.
Thekeyfingerprintis:
tf:rs:e3:7s:28:59:5s:93:fe:33:84:01:cj:65:3b:[email protected]
  然后确认一下公钥与密钥的建立,以及对应于客户端的一些处理。

[centospub@sample~]$cd~/.ssh ←进入用户SSH配置文件的目录

[[email protected]]$ls-l ←列出文件
total16
-rw-------1centospubcentospub951Sep419:22id_rsa ←确认私钥已被建立
-rw-r--r--1centospubcentospub241Sep419:22id_rsa.pub ←确认公钥已被建立

[[email protected]]$cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys ←公钥内容输出到相应文件中

[[email protected]]$rm-f~/.ssh/id_rsa.pub ←删除原来的公钥文件

[[email protected]]$chmod400~/.ssh/authorized_keys ←将新建立的公钥文件属性设置为400
  然后,将私钥通过安全的方式转移到欲通过SSH连接到服务器的PC上。这里,以通过3.5寸磁盘为介质为例:

[email protected]]$exit ←退出一般用户的登录(返回root的登录)

[root@sample~]#mount/mnt/floppy/ ←加载软盘驱动器

[root@sample~]#mv/home/centospub/.ssh/id_rsa/mnt/floppy/ ←将刚刚建立的私钥移动到软盘

[root@sample~]#umount/mnt/floppy/ ←卸载软盘驱动器
  这样,我们通过对应于centospub用户的私钥,就可以在远程终端上通过SSH客户端连接到服务器了。但服务器生成的私钥匙不能被客户端直接应用…详细请见下一节。