当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 安装和配置OPENSSH

Unix/Linux
linux 操作技巧收集_
linux下如何读取使用iso 镜像文件的方法
Linux平台下文件的压缩与解压参数说明
Linux下常用压缩格式的压缩与解压方法
Linux JDK,TOMCAT安装及环境设置
Linux sleep命令使用参数
Linux cat命令参数
nfs 配置的简单例子
linux kill 关闭进程命令
linux ultrasphinx Anonymous modules have no name to be referenced by
Linux oracle 9i图文安装方法一
Linux oracle 9i图文安装教程二
Linux oracle 9i图文安装教程三
Linux oracle 9i图文安装教程四
Linux oracle 9i图文安装教程五
Linux oracle 9i图文安装教程六 完结篇
linux AS3 oracle9i 安装指南
Linux 下 (RedHat 9.0) JDK,Tomcat,MySQL的安装
RedHat 9.0下Apache+PHP+MySQL服务器安装配置
Linux 下用 Python 连接 MSSql Server 2008

Unix/Linux 中的 安装和配置OPENSSH


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 42 ::
收藏到网摘: n/a

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,如果不出意外你就可以安全地行程控制你的服务器了。