安装和配置OPENSSH_RedHat/Centos教程-查字典教程网
安装和配置OPENSSH
安装和配置OPENSSH
发布时间:2016-12-27 来源:查字典编辑
摘要:OPENSSH的安装和配置一、概述传统的远程网络访问服务在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,很容易被截获,其安全验证...

OPENSSH的安装和配置

一、 概述

传统的远程网络访问服务在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,很容易被截获,其安全验证方式也容受到中间人的攻击。通过使用OPENSSH,你可以把所有传输的数据进行加密。

SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。它需要不同的客户端。OPENSSH同时支持SSH1和SSH2。

二、 OPENSSH的安全验证方式

OPENSSH提供两种级别的验证方式:

1、 基于口令的安全验证:只要你知道服务器上的帐号和口令,那么你可以登录到远程主机上。口令和数据在传输过程中都会被加密。

2、 基于密钥的安全验证:采用此方式验证你必须在远程服务器上为自己创建一对密钥(不对称密钥对),把公有密钥放在远程服务器上自己的宿主目录中。而私有密钥则由自己保存。

三、 所需软件

openssl-0.9.5a.tar.gz 下载网址:http://www.openssl.org

openssh-2.5.2p2.tar.gz 下载网址:http://www.openssh.org

四、 安装步骤

下面的安装选项根据你自己的情况可适当调整,如果有不明白的地方可以参考README、INSTALL文档。此文环境假定所有源文件都在/var/tmp下:

4. 1安装OPENSSL

[root@mail tmp]tar xzpf openssl-0.9.5a.tar.gz

[root@mail tmp]cd openssl-0.9.5a

[root@mail openssl-0.9.5a]./config –t

[root@mail openssl-0.9.5a]./config --prefix=/usr --openssldir=/etc/ssl

编辑Makefile.ssl文件更改MANDIR=$OPENSSL/man为MANDIR=/usr/man。

[root@mail openssl-0.9.5a]make

[root@mail openssl-0.9.5a]make test

[root@mail openssl-0.9.5a]make install

[root@mail openssl-0.9.5a]cd ..

[root@mail tmp]rm –rf openssl*

4.2 安装OPENSSH

在安装OPENSSL之前确认你的系统中已安装了zlib库,可用下面的命令来检查一下,若没有不要的犹豫,它就在你的系统安装光盘中,马上安装吧!

[root@mail tmp]rpm –qi zlib

[root@mail tmp]tar xzpf openssh-2.5.2p2.tar.gz

[root@mail openssh-2.5.2p2]./configure

>--prefix=/usr

>--sysconfdir=/etc/ssh

>--with-tcp-wrappers

>--with-ipv4-default

>--with-ssl-dir=/usr/include/openssl

[root@mail openssh-2.5.2p2]make

[root@mail openssh-2.5.2p2]make install

[root@mail openssh-2.5.2p2]install –m 644 contrib/redhat/sshd.pam

/etc/pam.d/sshd

[root@mail openssh-2.5.2p2]cd ..

[root@mail tmp]rm –rf openssh*

五、 配置OPENSSH

5.1 在inetd服务器中起动SSHD守护程序只需加入下面一行(建议在起动TELNET守护程序这一行更改,以完全代替TELNET):

ssh stream tcp nowait root /usr/sbin/tcpd sshd –I

5.2 SSH客户端配置文件/etc/ssh/ssh_config,一般情况下我们在多使用WINDOWS平台的客户端,此配置文件只有客户端不指定任何参数的情况下才使用,其内容如下:

# $OpenBSD: ssh_config,v 1.9 2001/03/10 12:53:51 deraadt Exp $

Host *

ForwardAgent no

ForwardX11 no

RhostsAuthentication no

RhostsRSAAuthentication yes

RSAAuthentication yes

PasswordAuthentication no

FallBackToRsh no

UseRsh no

BatchMode no

CheckHostIP yes

StrictHostKeyChecking yes

IdentityFile ~/.ssh/identity

IdentityFile ~/.ssh/id_dsa

IdentityFile ~/.ssh/id_rsa1

IdentityFile ~/.ssh/id_rsa2

Port 22

Protocol 2,1

Cipher blowfish

EscapeChar ~

5.3 SSH服务器端配置文件/etc/ssh/sshd_config,关于下面各个参数的含义请参考使用手册,此例中使用第二种认证方式(基于密钥的认证)以提高安全性。

# $OpenBSD: sshd_config,v 1.34 2001/02/24 10:37:26 deraadt Exp $

Port 22

#Protocol 2,1

#ListenAddress 0.0.0.0

#ListenAddress ::

HostKey /etc/ssh/ssh_host_key

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

ServerKeyBits 768

LoginGraceTime 600

KeyRegenerationInterval 3600

PermitRootLogin without-password

#

# Don't read ~/.rhosts and ~/.shosts files

IgnoreRhosts yes

# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication

#IgnoreUserKnownHosts yes

StrictModes yes

X11Forwarding no

X11DisplayOffset 10

PrintMotd yes

KeepAlive yes

# Logging

SyslogFacility AUTH

LogLevel INFO

#obsoletes QuietMode and FascistLogging

RhostsAuthentication no

#

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts

RhostsRSAAuthentication no

#

RSAAuthentication yes

# To disable tunneled clear text passwords, change to no here!

PasswordAuthentication no

PermitEmptyPasswords no

# Comment to enable s/key passwords or PAM interactive authentication

# NB. Neither of these are compiled in by default. Please read the

# notes in the sshd(8) manpage before enabling this on a PAM system.

ChallengeResponseAuthentication no

# To change Kerberos options

#KerberosAuthentication no

#KerberosOrLocalPasswd yes

#AFSTokenPassing no

#KerberosTicketCleanup no

# Kerberos TGT Passing does only work with the AFS kaserver

#KerberosTgtPassing yes

#CheckMail yes

#UseLogin no

#MaxStartups 10:30:60

#Banner /etc/issue.net

#ReverseMappingCheck yes

#Subsystem sftp /usr/libexec/sftp-server

六、 生成认证密钥

当采用密钥认证方式时,第个用户在远程服务器上必须生成自己的密钥;下面我们就以实例的方式叙述此过程:

6.1为服务器上的用户robin生成rsa1认证密钥:

[root@mail tmp]su robin

[root@mail tmp]ssh-keygen

此命令运行时将会提示你密钥的存放位置,直接回车;在提示你输入passphrase时建议你输入一个不短于10个字符的英文句子,以防止你的私有密钥被别人盗用。它会在当前用户的个人目录个生成两个文件:

~/.ssh/identify robin的私有密钥

~./ssh/identify.pub robin的公用密钥

6.2不要忘记idnentify.pub更名:

[root@mail .ssh]mv identify.pub authorized_keys

6.3 拷贝文件到安全的地方,在服务器上你的宿主文件夹中删除identify文件。

七、 使用PuTTY客户端登录

终于到检验我们工作结果的时候了,在WINDOWS平台的SSH客户端我推荐使用Putty,很好用,不像其它一些客户端只支持基于口令的安全验证;你可以在这里下载:

http://www.chiark.greenend.org.uk/~sgtatham/putty.html.

在连接服务器时不要忘记在connect->SSH中指定你的私有密钥的存放位置,输入创建密钥时的passphrase,如果不出意外你就可以安全地行程控制你的服务器了。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新RedHat/Centos学习
    热门RedHat/Centos学习
    操作系统子分类