科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道OPENSSH的安装和配置

OPENSSH的安装和配置

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

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

作者:巧巧读书 来源:巧巧读书 2008年6月11日

关键字: ssh

  • 评论
  • 分享微博
  • 分享邮件

  一、 概述

  传统的远程网络访问服务在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,很容易被截获,其安全验证方式也容受到中间人的攻击。通过使用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,如果不出意外你就可以安全地行程控制你的服务器了。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章