安装和配置OPENSSH
番茄系统家园 · 2022-05-06 06:34:51
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,如果不出意外你就可以安全地行程控制你的器了。

