当前位置:文档之家› SSH 安全性和配置入门

SSH 安全性和配置入门

SSH 安全性和配置入门
SSH 安全性和配置入门

动手实践指南

您是否是需要能够以尽可能最安全的方式通过网络进行通信的一个新UNIX? 管理员?重温基础知识、学习SSH 的复杂细节,并深入研究SSH 的高级功能,以安全地自动化您的日常系统维护、远程系统管理,并使用高级脚本管理多个主机。

什么是SSH?基本描述

Secure Shell (SSH) 的目的在于在通过网络远程访问另一个主机时提供最大的保护。它通过提供更好的身份验证工具和Secure Copy (SCP)、Secure File Transfer Protocol (SFTP)、X 会话转发和端口转发等功能来加密网络交换,从而增加其他非安全协议的安全性。有各种类型的加密可用,从512 位加密到高达32768 位加密,包括密码,比如Blowfish、Triple DES、CAST-128、Advanced Encryption Scheme (AES) 和ARCFOUR。更高位的加密配置以使用更高的网络带宽为代价。图1和图2展示如何使用一个像Wireshark 这样的网络嗅探程序轻松让任何人随意查看telnet 会话。

图 1. Telnet 协议会话未加密。

常用缩略词

?API:应用程序编程接口

?FTP:文件传输协议

?IETF:互联网工程任务组

?POSIX:UNIX 可移植操作系统接口

?RFC:请求注解

?VPN:虚拟专用网络

在使用telnet 这样的不安全“明文” 协议时,网络上的任何人都可以窃取您的密码和其他敏感信息。图1展示用户fsmythe通过一个telnet 连接登录到一个远程主机。他输入其用户名fsmythe和密码r@m$20!0,同一网络上的任何其他用户都可以看到,将其看作是倒霉、没有戒心的telnet 用户。

图 2. SSH 协议会话加密。

图2提供了对典型SSH 会话的概览,并展示了加密的协议如何不被同一网段的任何其他用户看到。现在每个主流Linux? 和UNIX? 版本都附带有默认安装的SSH 包—通常是开源OpenSSH 包—,因此有点需要下载和从源码进行编译。如果您不在一个Linux 或UNIX 平台上,有大量开源和基于SSH 的免费软件工具可用,它们大受追捧并广为应用,比如WinSCP、Putty、FileZilla、TTSSH和Cygwin(安装在Windows? 操作系统之上的POSIX 软件)。这些工具在Windows 平台上提供一个UNIX 或Linux 式的shell 接口。

不管您的操作系统是什么,SSH 都为老生常谈的日常计算操作提供许多实际效益。它不仅可靠、安全和灵活,而且易于安装、使用和配置—而且独具特色。

回页首SSH 架构

IETF RFC 4251 到4256 将SSH 定义为“经由一个不安全网络进行远程登录和其他安全网络服务的安全shell 协议”。shell 由三个主要元素组成(参见图3):

?传输层协议:该协议提供服务器身份验证、隐私和具有完美转

发隐私的完整性。该层可以提供可选压缩且通过一个TCP/IP 连接运行,但是也可用于任何其他可靠的数据流之上。

?用户认证协议:该协议从服务器到客户端进行身份验证,且通

过传输层运行。

?连接协议:该协议多路传输加密隧道到多个逻辑通道,通过用

户认证协议运行。

图 3. SSH 协议逻辑层

传输层负责密钥交换和服务器身份验证。它设置加密、完整性验证和(可选)压缩并向上层公开一个用于发送和接收纯文本数据包的API。用户认证层提供客户端身份验证以及多种验证方法。常见的身份验证方法包括密码、公钥、键盘交互、GSSAPI、SecureID 和PAM。

连接层定义通道、全局请求和借以提供SSH 服务的通道请求。单个SSH 连接可以并行承载多个通道,每个都可双方向传输数据。通道请求转送信息,比如服务器端流程的退出代码。SSH 客户端发起一个转发服务器端端口的请求。

这种开发式架构设计提供广泛的灵活性。传输层可媲美传输层安全(Transport Layer Security,TLS),而且您可以运用定制的身份验证方法来扩展用户认证层。通过连接层,您可以多道传输二级会话到单个SSH 连接(参见图4)。

图 4. 7 层OSI 模型内的SSH

针对UNIX 和Linux 系统的SSH 的一般用途

您通常使用SSH 来允许用户登录到一个远程主机并执行命令。然而,SSH 还支持隧道和X11 连接。它甚至可以使用SFTP 或SCP 传输文件。SSH 适用于大部分常见平台内的多个应用程序,这些平台包括Linux、UNIX、Windows 和Apple? OS X,虽然有些应用程序可能需要仅在特定SSH 客户端或服务器上提供或与之兼容的功能。

下面是一些常见的SSH 语法例子:

?远程主机shell 访问(取代telnet 和rlogin 明文,不安全协议):

?# ssh fsmythe@https://www.doczj.com/doc/6d2107071.html,

[fsmythe@https://www.doczj.com/doc/6d2107071.html,] ~

?在远程主机(代替rsh)执行单一命令:

?# ssh root@https://www.doczj.com/doc/6d2107071.html, reboot

root@https://www.doczj.com/doc/6d2107071.html,'s password: ******

?通过SCP命令将文件从本地服务器复制到远程主机。

?root@https://www.doczj.com/doc/6d2107071.html,'s password: ******

?file1.txt 100% 0 0.0KB/s 00:00

file2.txt 100% 0 0.0KB/s 00:00

?结合SFTP,作为FTP 文件传输的一个安全替代品:

?sftp fsmythe@https://www.doczj.com/doc/6d2107071.html,

?Connecting to https://www.doczj.com/doc/6d2107071.html,...

?fsmythe@https://www.doczj.com/doc/6d2107071.html,'s password: *******

sftp>

?结合rsync 有效安全地备份、复制和镜像文件到一个本地或远程主机:

?# rsync -avul --rsh=ssh /opt/edbdata/ root@https://www.doczj.com/doc/6d2107071.html,:/root/backup/

?root@https://www.doczj.com/doc/6d2107071.html,'s password: ******

?building file list ... done

?./

?file1.txt

?file2.txt

?file3.txt

?file4.txt

?dir1/file5.txt

?dir2/file6.txt

?

?sent 982813 bytes received 2116 bytes 1374860.38 bytes/sec total size is 982138 speedup is 1.00

?端口转发或端口隧道化(不要与VPN 混淆):ssh -L 8000:mailserver:110 https://www.doczj.com/doc/6d2107071.html, fsmythe@https://www.doczj.com/doc/6d2107071.html,'s password: ******** ?从一个远程主机转发X 会话(可能通过多个中间主机):

?Edit /etc/ssh/sshd_config and change 2 keywords :

?AllowTcpForwarding yes

?X11Forwarding yes

?# service sshd restart

?$ export DISPLAY

$ ssh -X fsmythe@https://www.doczj.com/doc/6d2107071.html,

?X11 转发配置与带SSH X11 隧道的一个X Windows 客户端的结合,支持实现通过SSH 安全地在同一Windows 主机上运行的一个UNIX 或Linux GUI 子系统,该Windows 主机是到Linux 或UNIX 远程主机的SSH 会话的来源:

?ssh -ND 8000 fsmythe@https://www.doczj.com/doc/6d2107071.html,

?Browser Settings, goto 'Manual Proxy Configuration' set "SOCKS Host" to https://www.doczj.com/doc/6d2107071.html,,

?the 'Port to 8000' , Enable SOCKS v5, and lastly set 'No Proxy for' field to 'localhost, 127.0.0.1'

?使用sshfs将一个目录作为本地计算机上的文件系统安全地挂载到一个远程服务器:

?# yum install sshfs fuse-utils (Install sshfs and fuse-utils) $sshfs https://www.doczj.com/doc/6d2107071.html,:/remote_dir /mnt/local_dir

?通过一个或多个机制对服务器进行自动化的远程主机监控和管理:

?(Report number of apache processes running on the remote server https://www.doczj.com/doc/6d2107071.html,): ?$ ssh https://www.doczj.com/doc/6d2107071.html, ps -ef | grep httpd | wc -l

root@https://www.doczj.com/doc/6d2107071.html,'s password: *****

SSH 安全性和配置最佳实践

对于一些之前列举的代码示例,许多系统管理员担心SSH 使用情况和功能的一些安全性实现。尽管已经口头和书面说明了常见的各种SSH 安全性和远程主机安全性方法,下面有一系列流程和配置可用于加强有关远程主机访问的SSH 安全性:

?将root 账户仅限制为控制台访问:

?# vi /etc/ssh/sshd_config

PermitRootLogin no

?为私有密钥使用一个强大的口令和密码保护来创建公私密钥对(绝不要生成一个无密码的密钥对或一个无密码口令无密钥的登录):

?(Use a higher bit rate for the encryption for more security) ssh-keygen -t rsa -b 4096

?配置TCP 包装程序,以便仅允许选定的远程主机并拒绝不合意的主机:

?# vi /etc/hosts.deny

ALL: 192.168.200.09 # IP Address of badguy

?在工作站或笔记本电脑上,关闭SSH 服务禁用SSH 服务器,然后删除ssh 服务器包:

?# chkconfig sshd off

# yum erase openssh-server

?通过控制用户访问限制SSH 访问:

?# vi /etc/ssh/sshd_config

?AllowUsers fsmythe bnice swilson

DenyUsers jhacker joebadguy jripper

?仅使用SSH Protocol 2:

?# vi /etc/ssh/sshd_config

Protocol 2

?不要支持闲置会话,并配置Idle Log Out Timeout 间隔:

?# vi /etc/ssh/sshd_config

?ClientAliveInterval 600 # (Set to 600 seconds = 10 minutes) ClientAliveCountMax 0

?禁用基于主机的身份验证:

?# vi /etc/ssh/sshd_config

HostbasedAuthentication no

?禁用用户的 .rhosts 文件:

?# vi /etc/ssh/sshd_config

IgnoreRhosts yes

?配置防火墙以接受仅来自已知网段的SSH 连接:

?Update /etc/sysconfig/iptables (Redhat specific file) to accept connection only

?from 192.168.100.0/24 and 209.64.100.5/27, enter:

?

?-A RH-FW-1-INPUT -s 192.168.100.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT

-A RH-FW-1-INPUT -s 209.64.100.5/27 -m state --state NEW -p tcp --dport 22 -j ACCEPT ?限制SSH 将侦听和绑定到的可用接口:

?# vi /etc/ssh/sshd_config

?ListenAddress 192.168.100.17

ListenAddress 209.64.100.15

?设置用户策略,实施强大的密码来防御强力攻击、社会工程企图(social engineering attempts)和字典攻击:

?# < /dev/urandom tr -dc A-Za-z0-9_ | head -c8

oP0FNAUt[

?使用Chroot SSHD将SFTP 用户局限于其自己的主目录:

?# vi /etc/ssh/sshd_config

?ChrootDirectory /data01/home/%u

?X11Forwarding no

AllowTcpForwarding no

?禁用空密码:

?# vi /etc/ssh/sshd_config

PermitEmptyPasswords no

?在指定时间内对传入端口2022 连接的数量限速:

?Redhat iptables example (Update /etc/sysconfig/iptables):

?

?-A INPUT -i eth0 -p tcp --dport 2022 -m state --state NEW -m limit --limit 3/min

?--limit-burst 3 -j ACCEPT

?

?-A INPUT -i eth0 -p tcp --dport 2022 -m state --state ESTABLISHED -j ACCEPT -A OUTPUT -o eth0 -p tcp --sport 2022 -m state --state ESTABLISHED -j ACCEPT

?配置iptables,以便在30 秒内仅允许在端口2022 上有三个连接尝试:

?Redhat iptables example (Update /etc/sysconfig/iptables):

?-I INPUT -p tcp --dport 2022 -i eth0 -m state --state NEW -m recent --set ?

?-I INPUT -p tcp --dport 2022 -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 3 -j DR

?使用一个日志分析器,比如logcheck、loggrep、splunk或logwatch来更好地理解日志并创建日志报告。另外,在SSH 应用程序自身内增加日志记录的详细度:

?Installation of the logwatch package on Redhat Linux

# yum install logwatch

?通过配置增加SSH 日志记录的详细度:

?# vi /etc/ssh/sshd_config

LogLevel DEBUG

?在补丁上总是将SSH 程序包和需要的库保持为最新:# yum update openssh-server openssh openssh-clients -y

?隐藏OpenSSH 版本,要求SSH 源代码并进行重新编译。然后进行以下更新:

?# vi /etc/ssh/sshd_config

?VerifyReverseMapping yes # Turn on reverse name checking

?UsePrivilegeSeparation yes # Turn on privilege separation

?StrictModes yes # Prevent the use of insecure home directory

?# and key file permissions

?AllowTcpForwarding no # Turn off , if at all possible

?X11Forwarding no # Turn off , if at all possible

?PasswordAuthentication no # Specifies whether password authentication is

?# allowed. The default is yes. Users must have

# another authentication method available . ?从系统上删除rlogin 和rsh 二进制程序,并将它们替代为SSH 的一个symlink:

?# find /usr -name rsh

?/usr/bin/rsh

?# rm -f /usr/bin/rsh

# ln -s /usr/bin/ssh /usr/bin/rsh

SSH 支持可启用或禁用的多种不同的身份验证方法和技术。在

/etc/ssh/sshd_config 文件中,您可以进行这些配置更改,方法就是输入为身份验证方法列出的关键字,然后紧接yes或no。下面是一些常见的配置更改:# RSAAuthentication yes

# PubkeyAuthentication yes

# RhostsRSAAuthentication no

# HostbasedAuthentication no

# RhostsRSAAuthentication and HostbasedAuthentication

PasswordAuthentication yes

ChallengeResponseAuthentication no

# KerberosAuthentication no

GSSAPIAuthentication yes

sshd_config 文件内

的AllowedAuthentications和RequiredAuthentications决定哪些身份验证方法和配置仅用于SSH Protocol 2,且它们支持密码和公钥身份验证的语法如下:

# vi /etc/ssh/sshd_config

AllowedAuthentications publickey, password

RequiredAuthentications publickey, password

SSH 的私钥和公钥对

为了帮助验证身份,SSH 有一个密钥管理功能和相关的代理。当配置为公钥身份验证时,您的密钥证明您在远程SSH 主机上的身份。一个基于SSH 的身份包括两个部分:一个公钥和一个私钥。私有SSH 密钥是用于出站SSH 连接的用户身份,且应当保密。当用户发起一个SSH 或SCP 会话到远程主机或服务器时,他或她被认为是SSH 客户端。通过一个数学算法,一个私钥如同您的电子身份证;公钥如同您向其出示身份证的锁或门机制。您的私钥说,“这

真的是Fred Smythe”;公钥说,“是的,您确实是真正的Fred Smythe;您已通过身份验证:请进入。”

您的公钥代表您允许通过您的大门或锁进入的人。公钥需要保密;它们不能用于泄漏一个系统或对系统进行未经授权的访问。在一个Linux 或UNIX 系统上,这些私有和公共密钥对存储在ASCII 文本系统中;在Windows 系统上,一些程序将密钥对存储为文本文件,一些存储在Windows 注册表中。

通过一个SSH Protocol 2 配置可创建使用多个私有密钥的多重鉴定。让我们看看如何在一个典型的Linux 主机上生成、设置和配置一个SSH 私有和公共密钥对(参见图5)。

图 5. 在SSH 定义的架构模型中定义的SSH 公私密钥对事务图

配置公私SSH 密钥对的步骤

步骤1 中所示的示例(参见清单1)为用户fsmythe 使用ssh-keygen使用程序,通过dsa的type创建SSH 公私密钥对。

清单 1. 生成SSH 密钥对

[fsmythe@https://www.doczj.com/doc/6d2107071.html, ~]$ /usr/bin/ssh-keygen -t dsa

Generating public/private dsa key pair.

Enter file in which to save the key (/home/fsmythe/.ssh/id_dsa):

Enter passphrase (empty for no passphrase): ****** (Enter 'mypassword')

Enter same passphrase again: ****** (Enter 'mypassword')

Your identification has been saved in /home/fsmythe/.ssh/id_dsa.

Your public key has been saved in /home/fsmythe/.ssh/id_dsa.pub.

The key fingerprint is:

33:af:35:cd:58:9c:11:91:0f:4a:0c:3a:d8:1f:0e:e6 fsmythe@https://www.doczj.com/doc/6d2107071.html,

[fsmythe@https://www.doczj.com/doc/6d2107071.html, ~]$

步骤2 中所示的示例(清单2)展示如何将密钥对的公共密钥从源主机复制到目标主机的authorized_keys 文件,该文件位于目标主机上预期用户帐户的主目录下的 .ssh 子目录内。

清单 2. 将公共密钥从源主机复制到目标主机上的authorized_keys 文件

[fsmythe@https://www.doczj.com/doc/6d2107071.html, ~]$ scp -p /home/fsmythe/.ssh/id_dsa.pub

fsmythe@https://www.doczj.com/doc/6d2107071.html,:/home/fsmythe/.ssh/authorized_keys

fsmythe@ https://www.doczj.com/doc/6d2107071.html,'s password:

id_dsa.pub 100% 624 0.6KB/s 00:00

步骤3 中所示的示例(参见清单3)发出第一次远程SSH 调用(ls -d /tmp)到目标服务器,从而缓存您的服务器的 .ssh/known_hosts 文件内的密钥。您可以输入与在创建SSH 公私密钥对时同样的口令,且在远程目标服务器上运行的命令的输出可在您本地的源服务器上看到。

清单 3. 通过在目标远程主机上运行远程命令来验证SSH 访问

[fsmythe@https://www.doczj.com/doc/6d2107071.html, ~]$ ssh root@https://www.doczj.com/doc/6d2107071.html, ls -d /tmp

The authenticity of host 'https://www.doczj.com/doc/6d2107071.html, (10.12.53.118)' can't be established.

RSA key fingerprint is 84:4f:e5:99:0b:7d:54:d0:1b:3e:2b:96:02:34:41:25.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'https://www.doczj.com/doc/6d2107071.html,,10.12.53.118' (RSA) to the list of known hosts. Enter passphrase for key '/root/.ssh/id_dsa': ****** (Enter 'mypassword')

/tmp

file1.txt

file2.txt

dir3_5432

注意:对于上述示例,您不必输入用户fsmythe 的密码。不过您可以输入您在第一步中设置的口令。如果您选择在访问远程目标时不输入口令,那么在提示输入口令时输入步骤 1 中的enter来创建一个空口令。现在,您不必输入任何内容来作为用户fsmythe 访问https://www.doczj.com/doc/6d2107071.html, 远程目标机器。

配置和使用ssh-agent

对于拒绝创建无密码SSH 公私密钥对的真正的偏执狂来说,有一

个ssh-agent实用程序。简言之,您使用ssh-agent实用程序来暂时在无口令集的公私密钥对配置上授予无密码的SSH 访问,但仅针对当前shell 会话。在运用ssh-agent实用程序之前,像往常一样输入口令:

[root@https://www.doczj.com/doc/6d2107071.html, ~]# ssh root@https://www.doczj.com/doc/6d2107071.html,

Enter passphrase for key '/root/.ssh/id_dsa':****** (User must type password) Last login: Sat May 8 06:37:26 2010 from 10.12.53.118

接下来,查询ssh-agent以在标准输出中生成Bourne shell 命令:

[root@https://www.doczj.com/doc/6d2107071.html, ~]# ssh-agent -s

SSH_AUTH_SOCK=/tmp/ssh-vxZIxF1845/agent.1845; export SSH_AUTH_SOCK;

SSH_AGENT_PID=1849; export SSH_AGENT_PID;

echo Agent pid 1849;

在步骤3 中,在当前shell 会话中设置前述的环境变量:

[root@example01 ~]# SSH_AUTH_SOCK=/tmp/ssh-vxZIxF1845/agent.1845;export

SSH_AUTH_SOCK

SSH_AGENT_PID=1849; export SSH_AGENT_PID;echo Agent pid 1849

Agent pid 1849

然后,确认ssh-agent在运行:

[root@https://www.doczj.com/doc/6d2107071.html, ~]# ps -fp $SSH_AGENT_PID

UID PID PPID C STIME TTY TIME CMD

root 1849 1 0 06:14 ? 00:00:00 ssh-agent -s

现在,在运行的ssh-agent内列出当前加载的身份:

[root@https://www.doczj.com/doc/6d2107071.html, ~]# ssh-add -l

The agent has no identities.

在步骤6 中,添加所需的SSH 身份(使用该SSH 密钥的正确口令对其进行预先验证):

[root@https://www.doczj.com/doc/6d2107071.html, ~]# ssh-add

Enter passphrase for /root/.ssh/id_dsa:

Identity added: /root/.ssh/id_dsa (/root/.ssh/id_dsa) ****** (Entered

'mypassword')

现在,您可以确认将这些身份加载到运行的ssh-agent中:

[root@https://www.doczj.com/doc/6d2107071.html, ~]# ssh-add -l

1024 33:af:35:cd:58:9c:11:91:0f:4a:0c:3a:d8:1f:0e:e6 /root/.ssh/id_dsa (DSA)

最后,使用SSH 命令语法测试ssh-agent。注意,现在有一个口令提示:

# Assuming target remote host has correct authorized key for private key from example01 [root@https://www.doczj.com/doc/6d2107071.html, ~]# ssh -A root@https://www.doczj.com/doc/6d2107071.html,

Last login: Sat May 8 06:36:27 2010 from 10.12.53.118

[root@example02 ~]#

# Assuming target remote host has correct authorized key for private key from example03 [root@https://www.doczj.com/doc/6d2107071.html, ~]# ssh -A root@https://www.doczj.com/doc/6d2107071.html,

Last login: Sat May 8 07:04:05 2010 from 10.12.53.119

[root@example03 ~]#

在使用ssh-add命令输入口令时,您实际上是在解密私有密钥然后通过代理将其放到内存中,用于将来使用该口令的SSH 连接。注意,您可以输入多个私有密钥并使用ssh-add命令预先验证它们。

清单4中所示的SSH 工具ssh-keyscan允许您从多个远程SSH 主机收

集公共SSH 主机密钥。该工具有助于构建/etc/ssh_known_hosts 文件且异常快速有效。它主要适用于用于自动化用途的shell 脚本。

清单 4. 使用ssh-keyscan 的示例

[root@example01 ~]# /usr/bin/ssh-keyscan -t rsa,dsa https://www.doczj.com/doc/6d2107071.html,

# https://www.doczj.com/doc/6d2107071.html,SSH-2.0-OpenSSH_4.3

https://www.doczj.com/doc/6d2107071.html,ssh-dss

AAAAB3NzaC1kc3MAAACBALd5/TGn7jCL1DWWzYMw96jw3QOZGBXJgP4m9LACViyM0QHs

ewHGo841JdInfE825mVe0nB/UT15iylLOsI/jFCac+ljQRlO+h2q7WOwGveOUN7TxyKlejM+G1pg5DndG t05iYn+2

dDfn5CmEsI+K0F2vk/+mpoSOk9HKq9VgwNzAAAAFQDPeLAth62TRUcN/nTYoqENBmW3SwAAAIEAryoKa+ VaG5LQNj

wBujAuA7hGl+DIWVb1aZ8xAHkcyL5XgrOWEKNnK9mDmEN66oMLfTMO3w8/OvbJUmcXcU3jnL3zguz2E2O Iv6t6vAa

F6niL7A/VhxGGxy4CJZnceufStrzZ3UKXRzjwlm0Bwu/LruVF2m3XLvR5XVwUgyWvw+AAAACAaK12k3uC /OOokBgi

eu/SuD5wCSBsf9rqG9ZFa32ujZwRZmA/AwPrZd6q3ASxmjtMp6zGQSzxPczUvLH9D9WIJo713bw8wCPo/ 7pqiQNRs

OZXqlQyaXyrDout6CI683b1/rxsZKPrJpFNehrZwjWrwpYhK7VaTuzxvWtrDyDxWec=

# https://www.doczj.com/doc/6d2107071.html,SSH-2.0-OpenSSH_4.3

https://www.doczj.com/doc/6d2107071.html,ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAQEAq5So5VBeH4gPX1A1VEeQkGsb/miiWsWnNTW8ZWYj

2IvU7rKpk/dBIp64WecYYYgDqTK5u0Q+yTijF8wEEI9rRyoh9p5QraM8qy9NxcHzyGqU4vSzfVrblIQrD I8iv7iwz

7PxQAY76NmweaUyGEDfIErty4gCn/ksy85IgffATa9nt36a4iUhiDNifnE8dm1ZrKkvz3lIg0w+Cu0T9M Y77AqLWj

Moo0WoQArIvYa0soS3VhzgD/Biwu/sh3eHJtFUxTVxnATdkWkHKUI1wxma3j7jF0saTRKEQSvG6492W+U 1FhEjFGN

r7KeZXH99uFpuUWFA7xO7uaG/MLWSjPJMxw==

# https://www.doczj.com/doc/6d2107071.html,SSH-2.0-OpenSSH_4.3

https://www.doczj.com/doc/6d2107071.html,ssh-dss

AAAAB3NzaC1kc3MAAACBALd5/TGn7jCL1DWWzYMw96jw3QOZGBXJgP4m9LACViyM0QHs

ewHGo841JdInfE825mVe0nB/UT15iylLOsI/jFCac+ljQRlO+h2q7WOwGveOUN7TxyKlejM+G1pg5DndG t05iYn+2

dDfn5CmEsI+K0F2vk/+mpoSOk9HKq9VgwNzAAAAFQDPeLAth62TRUcN/nTYoqENBmW3SwAAAIEAryoKa+ VaG5LQNj

wBujAuA7hGl+DIWVb1aZ8xAHkcyL5XgrOWEKNnK9mDmEN66oMLfTMO3w8/OvbJUmcXcU3jnL3zguz2E2O Iv6t6vAa

F6niL7A/VhxGGxy4CJZnceufStrzZ3UKXRzjwlm0Bwu/LruVF2m3XLvR5XVwUgyWvw+AAAACAaK12k3uC /OOokBgi

eu/SuD5wCSBsf9rqG9ZFa32ujZwRZmA/AwPrZd6q3ASxmjtMp6zGQSzxPczUvLH9D9WIJo713bw8wCPo/ 7pqiQNRs

OZXqlQyaXyrDout6CI683b1/rxsZKPrJpFNehrZwjWrwpYhK7VaTuzxvWtrDyDxWec=

# https://www.doczj.com/doc/6d2107071.html,SSH-2.0-OpenSSH_4.3

https://www.doczj.com/doc/6d2107071.html,ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAQEAq5So5VBeH4gPX1A1VEeQkGsb/miiWsWnNTW8ZWYj

2IvU7rKpk/dBIp64WecYYYgDqTK5u0Q+yTijF8wEEI9rRyoh9p5QraM8qy9NxcHzyGqU4vSzfVrblIQrD I8iv7iwz

7PxQAY76NmweaUyGEDfIErty4gCn/ksy85IgffATa9nt36a4iUhiDNifnE8dm1ZrKkvz3lIg0w+Cu0T9M Y77AqLWj

Moo0WoQArIvYa0soS3VhzgD/Biwu/sh3eHJtFUxTVxnATdkWkHKUI1wxma3j7jF0saTRKEQSvG6492W+U 1FhEjFGN

r7KeZXH99uFpuUWFA7xO7uaG/MLWSjPJMxw==

使用UNIX 应用程序或脚本配置SSH

配置供远程shell 脚本使用的SSH 访问以及用于维护、远程备份和存档系统的远程工具非常有用,但一旦涉及到服务器安全性,它一直都是一个有极大争议的主题。用户可能希望运行的很多shell 脚本,比如:

$ ssh fsmythe@https://www.doczj.com/doc/6d2107071.html, /usr/local/bin/dangerous_script.pl

不能处理提示其进行身份验证的一个必需的SSH 口令,但除非提前配置一个无密码的公私SSH 密钥对、一个ssh-agent配置或一个可信的主机网络机制—不提示输入SSH 密钥的配置—,否则这不太可能。这是因为SSH 期待来自与该shell 会话相关的当前终端的口令。通过使用一个预期脚本或Perl(参见CPAN Module Net::SSH::Perl)脚本(或您的shell 脚本可以选择性地调用上述脚本类型中的一种)用户可以解决该问题:

#!/usr/local/bin/expect

spawn sftp $argv

expect "password:"

send "mysshpassowrd\r"

向一般用户授予一个无密码的SSH 机制来访问远程主机在一些系统管理员的眼里已相当不可想象。然而,拥护无密码SSH 机制访问远程主机的其他安全措施,比如远程主机上的用户仅提供一个受限的korn shell (rksh) 帐户或受限的shell (rssh) 而非一个完全的bash 或Bourne shell 帐户。一个授权密钥也可以将用户限制为列表中命令的一个子集,因此实际上,用户仅可以使用运程运行

所需的确切命令,没有可能发生进一步访问或会损坏系统的一个意外命令运行。清单5中提供的SSH 限制示例提供这样一个限制类型。

清单 5. 限制远程主机上authorized_keys 文件的配置示例

[fsmythe@example02 .ssh]$ more authorized_keys

command="/usr/local/bin/secureScript.sh",no-port-forwarding,no-X11-forwarding,no-agent-fo

rwarding,no-pty ssh-dss

AAAAB3NzaC1kc3MAAACBAOFsC6C7cJUGOZG4Ur9W0J6mxTTk5+MYTu5XfRESPLVwQ

A7HlUxhsXsxgmb1L1RgvR/g0JZnipDS+fGOrN2/IerSpgyzegTVxYLPrOovvuyCn5TA0+rmyrkV27so6y RDkdqTJc

YzWNJOyDndnTrDc/LNmqLFKoGMQ33aur6RNv4VAAAAFQD4leC5Fc1VJqjvXCNsvazBhi84vQAAAIAWbsh T80cTESg

dX/srxX4KVNAzY1uhBz5V0UYR4FGP+aoe6laxRj+gQvFIvAKIrpikvBjgyW6cdT8+k0t8HGIQp20MzSBd Y9sH8xdj

05AG97Nb/L8xzkceB78qfXhV6txaM1CzssUtiOtaAygrywNPBDEN9MbEbwpVVVyd6iqZNgAAAIAmV0SUZ oUr8dHdC

tagRye4bGOQjoztpb4C0RbXQw+w7Jpzr6cZISdZsK4DTBjODvv2+/OWPm7NEzzWyLzHPBNul8hAHOUCOp p+mYWbXX

F78BTk2Ess0SZu8dwpOtasTNEp+xPcsOvQx2Kdr17gTp+28SfpREuLudOr6R3KeTb+hw==

fsmythe@example01

主机example01 上的用户fsmythe 仅允许执行本例中的命

令="/usr/local/bin/secureScript.sh。

回页首使用SSH 创建一个可信的主机环境

最后,我要提一下作为一种替代方案来设置公私SSH 密钥对的可信主机环境。对于自动化或在有必要进行这些类型的调用的一个脚本环境中,虽然可信主机环境仍然承担一些安全风险,但它优于公私密钥对场景。一个可信主机环境或可信主机身份验证主要依赖于列出获准访问的用户和主机组合的预配置文件。有两种可信主机身份验证。较老(比如针对OpenSSH 和SSH1)和较弱的使用明文协议命令(rsh、rcp和rlogin);检查两个文件;并在sshd_config 文件中设置一个关键字:

/etc/hosts.equiv

~/.rhosts

SSH Protocol 2 不支持该方法。相反,对于更安全的可信主机网络,在

/etc/ssh/sshd_config 文件(接受主机名或IP 地址)中进行如下更改,并配置shosts.equiv 和/或 .shosts 文件:

/etc/shosts.equiv

~/.shosts

要在/etc/ssh/sshd_config 文件中为SSH Protocol 2 启用一个可信主机环境,使用:

PermitEmptyPasswords yes

AllowSHosts https://www.doczj.com/doc/6d2107071.html,

DenySHosts

例如,如果您在服务器https://www.doczj.com/doc/6d2107071.html, 上且按如下方式配置了您的

/etc/shosts.equiv 文件:

+https://www.doczj.com/doc/6d2107071.html, fsmythe

+https://www.doczj.com/doc/6d2107071.html, sallyh

+192.168.100.12 fsmythe

https://www.doczj.com/doc/6d2107071.html, james

您将允许用户fsmythe 从远程源https://www.doczj.com/doc/6d2107071.html,,192.168.100.12,和

https://www.doczj.com/doc/6d2107071.html, 进行可信主机身份验证,允许用户从https://www.doczj.com/doc/6d2107071.html, 进行访问,拒绝来自远程源https://www.doczj.com/doc/6d2107071.html, 的用户james 的访问。

可信主机身份验证和公私SSH 密钥对身份验证方法是类似的,在很大程度上实现相同的结果。表1提供对两种身份验证方法的并排比较。

表 1. 公私SSH 密钥对与可信主机环境之比较

SSH 方面可信主机公私密钥对

根据IP 地址进行身份验证是是

根据主机名进行身份验证是是

使用其他公钥功能否是

根据远程用户名进行身份验证是否

允许主机名和IP 地址中有通配符否是

口令是登录访问所必需的否否

IP 地址或主机名变更消息有时是

服务器和客户端需要的配置否是

对自动化任务或脚本化需求有用是是

对那些目前嘲笑在网络上使用无密码远程SSH 访问来支持可信主机身份验证这一想法的那些管理员,在使用脚本实现远程SSH 功能时考虑公私密钥对的缺点:

如果一个服务器主机名或IP 地址改变,公私密钥对配置会由于缓存的已知主机而破坏。需要在 .ssh/known_hosts 文件中删除旧

条目,且SSH 远程主机名和/或IP 地址被再次缓存。这会破坏依赖于公私密钥对的脚本。

?公私密钥对身份验证同时需要客户端和服务器配置。如果一个SSH 公钥改变或重新生成密钥对,所有远程主机将在其

authorized_keys 文件中需要新的公共密钥。

?如果 .ssh/ 文件夹的权限或私有或公共密钥文件本省改变,它会阻止无SSH 密码的访问发生。要禁用严格的文件和目录权限检查,在/etc/ssh/sshd_config 文件内将关键字StrictModes设置为no。

?一旦生成密钥对,没有集中方式来撤销密钥,或确切地知道该密钥已向谁分发。

结束语

SSH 是一个强大而安全的网络实用程序,全球有无数用户使用它来完成各种任务。作为telnet 和r*系列命令等明文协议的一个安全替代方案,拥有可免费分发的SSH 客户端和服务器的多个产品,SSH 是很难被击败的。在许多网络中被广泛用于脚本化技术内的大量远程监控、系统维护、远程系统审计、报告和自动化,SSH 似乎已被普遍接受并将继续不断演化。

myEclipse8.5整合SSH步骤(基于操作和配置文件)

一、准备工作: myEclipse 整合 SSH 步骤(基于操作和配置文件) 1. JDK -> jdk1.6.0_17 安装(环境变量配置): JAVA_HOME = C:\ jdk1.6.0_17; PATH = %JAVA_HOME%\bin; %JAVA_HOME%\jre\bin; CLA SSPATH = .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar; 在 Cmd -> java –version 查看 JDK 的版本是否与刚配好的版本一致。 2. apache-tomcat-6.0.24:解压即可; 3. myEclipse 8.5:安装(略): 最高可提供: 框架:Java EE 5 Spring 3.0 Hibernate 3.3 Struts 2.1 4. DB :以 MySQL 5.1 为例。 二、打开 myEclipse 先配置好 Tomcat 服务器和 JDK 操作好下图所示: 1. Window -> Preferences -> Java: Installed JREs 在这里可以不使用 myEclipse 自带的 JDK ,得 Add…自己安装好的 JDK : 2. Window -> Preferences -> MyEclipse -> Servers: Tomcat 6.x 在这里配置 Tomcat 服务器,我们这里是选择 6.x 。Browse…自己将 Tomcat 解压放的目 录,再选择 Enable ,将它启用,然后 Apply 应用一下就 Ok 了。

3. Window -> Preferences: Tomcat 6.x -> JDK 选择前面我们配好的JDK 版本。

图解SSH框架配置步骤

图解SSH框架配置步骤 核心提示:现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。 1 开发环境 MyEclipse5.5 JDK 1.6 Java EE 5.0 Tomcat6.0 Struts2.1.6 Spring2.5.6 Hibernate3.3.1 2 为 ssh 做好准备 2.1 下载包 Struts2 现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。 1 开发环境 MyEclipse5.5 JDK 1.6 Java EE 5.0 Tomcat6.0 Struts2.1.6 Spring2.5.6 Hibernate3.3.1 2 为ssh做好准备 2.1下载包 Struts2.1.6包下载: https://www.doczj.com/doc/6d2107071.html,/download.cgi#struts216 Full Distribution: o struts-2.1.6-all.zip (110mb) [PGP] [MD5] Hibernate3.3包下载: https://https://www.doczj.com/doc/6d2107071.html,/6.html Spring2.5下载: https://www.doczj.com/doc/6d2107071.html,/download

2.2搭建开发环境 打开MyEclipse,新建一个web project,如图: 注意:J2ee版本设为java ee 5.0

点击Finish完成,建好的工程如图: 如果你的myeclipse还没有配置一个web服务器,那就进行下面的步骤,这里以tomcat6为例:

SSH三大框架整合(详细版)

1:构建WEB项目 2:构建数据库 3:加入依赖包 尽量不要依赖IDE,通过自己手动加包完成 访问数据库需要的包:mysql的驱动包 Hibernate的包:hibernate3.jar 核心包 依赖的必须包:antlr-2.7.6.jar 用于解析成HQL语句的包 commons-collections-3.1.jar apache提供的包,提供对集合框架的增强 dom4j-1.6.1.jar 解析XML文件的包 javassist-3.9.0.GA.jar 动态修改字节码需要用到的包 jta-1.1.jar 用于JTA事务的包 slf4j-api-1.5.8.jar 日志接口包---》依赖一定的实现包 slf4j-log4j12-1.5.0.jar log4j.jar 另外一种实现包:slf4j-simple-1.5.10.jar 可选的包:c3p0-0.9.1.jar 用于创建C3P0连接池的包 ehcache-1.2.3.jar :用于缓存实现的包 cglib-2.2.jar 动态修改字节码的包 Spring的包:spring.jar 核心包 aopalliance.jar 使用Aop功能可以用到的包 aspectjrt.jar aspectjweaver.jar 使用ASPECTJ表达式需要用到的包 如果是使用DBCP连接池的话,需要两个jar包 commons-dbcp.jar commons-pool.jar 如果需要用到commons增加包的话,可以加入以下包 commons-beanutils.jar commons-lang.jar commons-logging.jar Struts2的包:commons-fileupload-1.2.1.jar commons-io-1.3.2.jar freemarker-2.3.13.jar :在Struts2 中默认使用的是FreeMarker模板引擎 ognl-2.6.11.jar :Struts2中使用OGNL表达式 struts2-core-2.1.6.jar 核心包 xwork-2.1.2.jar 核心包 struts2-spring-plugin-2.1.6.jar Struts2跟Spring整合需要的插件包 4:构建项目分包结构 5:放置配置文件 6:创建POJO和相对应的hbm.xml 7:修改空白的Hibernate.cfg..xml并创建表结构 8:创建DAO,SERVICE,ACTION 9:修改配置文件

华为SSH配置

SSH服务器配置: sys [Huawei]undo info en [Huawei]sys S1 [S1]int vlan 1 [S1-Vlanif1]ip add 192.168.1.1 24 [S1-Vlanif1]q [S1]rsa local-key-pair create The key name will be: S1_Host The range of public key size is (512 ~ 2048). NOTES: If the key modulus is greater than 512, it will take a few minutes. Input the bits in the modulus[default = 512]:1024 Generating keys... ....................++++++ ............++++++ ...........++++++++ ................................................................................ ....................++++++++ [S1]user-interface vty 0 4 [S1-ui-vty0-4]authentication-mode aaa [S1-ui-vty0-4]protocol inbound ssh [S1-ui-vty0-4]q [S1]aaa [S1-aaa]local-user admin password cipher admin [S1-aaa]local-user admin service-type ssh [S1-aaa]local-user admin privilege level 15 [S1-aaa]q [S1]ssh user admin authentication-type password [S1]ssh user admin service-type stelnet //路由器不需要此命令,也没有此命令[S1]stelnet server en Info: Succeeded in starting the Stelnet server.

SSH整合

MyEclipse6.0的SSH整合 Version 1.1 2010-6-20 目录 0.概述 (2) 1.准备环境 (2) 2.创建工程 (10) 3.添加Struts支持 (11) 4.添加Spring支持 (13) 5.配臵数据源 (17) 6.添加Hibernate支持 (28) 7.添加Hibernate反转工程 (35) 8.修改目录结构 (39) 9.测试Spring和Hibernate的整合 (41) 10.整合Struts和Spring (51) 11.测试SSH的整合 (52) 0.概述 MyEclipse 是 Eclipse 的一个优秀插件,用于 Java EE 的开发,提供了诸如数据库管理、文件配臵管理等的一站式服务。然而对

于 SSH 的整合,仅仅使用 MyEclipse 是无法成功实现的。这或许是MyEclipse 的 Bug,因为它自带的部分库文件并不能按照预期进行整合,需要我们手工干预。因此,我们编写这个这个文档,希望对以后的 SSH 整合技术有一定的帮助。 本公司使用 MyEclipse6.0 构建 SSH 项目。对公司开发部开会讨论,开发工具MyEclipse6.0。另外需要指出的是,SSH 的整合有很多方法,这里只介绍其中的一种。作为 Java EE 的开发,我们使用Tomcat5.5 作为 Web 容器,使用 MySQL 作为数据库。 1.准备环境 下面是我们需要使用的软件开发环境: MyEclipse6.0 Tomcat5.5 MySQL5.1 JDK6.0 需要指出的是,各个软件的版本号并不一定需要和上面列出的相同。但是,由于我们编写本教程时的 实验环境是由上述各版本系统搭建的,因此不能确保其它版本的软件是不是能够正常运行。另外由于 MyEclipse 中已经附带了 SSH 所需要的各种库文件,所以我们一般不再需要另外的准备。 对于软件的设臵,我们将 MySQL 数据库编码设臵为 UTF-8。具体方法为: 安装好 MySQL 后,打开 MySQL Server Instance Config Wizard,请根据下面的图示进行设臵: 1) 启动 MySQL 配臵向导界面,点击 Next 继续;

Cisco路由器的SSH配置详解

C i s c o路由器的S S H配 置详解 The document was finally revised on 2021

Cisco路由器的SSH配置详解 2008-06-18 13:04 如果你一直利用Telnet控制网络设备,你可以考虑采用其他更安全的方式。 本文告诉你如何用SSH替换Telnet. 使用Telnet这个用来访问远程计算机的TCP/IP协议以控制你的网络设备相当于在离开某个建筑时大喊你的用户名和口令。很快地,会有人进行监听,并且他们会利用你安全意识的缺乏。 SSH是替代Telnet和其他远程控制台管理应用程序的行业标准。SSH命令是加密的并以几种方式进行保密。 在使用SSH的时候,一个数字证书将认证客户端(你的工作站)和服务器(你的网络设备)之间的连接,并加密受保护的口令。SSH1使用RSA加密密钥,SSH2使用数字签名算法(DSA)密钥保护连接和认证。 加密算法包括Blowfish,数据加密标准(DES),以及三重DES (3DES)。SSH保护并且有助于防止欺骗,“中间人”攻击,以及数据包监听。 实施SSH的第一步是验证你的设备支持SSH.请登录你的路由器或交换机,并确定你是否加载了一个支持SSH的IPSec IOS镜像。 在我们的例子中,我们将使用Cisco IOS命令。运行下面的命令: 该命令显示已加载的IOS镜像名称。你可以用结果对比你的供应商的支持特性列表。 在你验证了你的设备支持SSH之后,请确保设备拥有一个主机名和配置正确的主机域,就像下面的一样: 在这个时候,你就可以启用路由器上的SSH服务器。要启用SSH服务器,你首先必须利用下面的命令产生一对RSA密钥:

整合SSH三大框架介绍

一.在MyEclipse里先建立一个Web project 的项目,选最新版本的java ee。 二.添加struts2框架支持 1.引入struts2必须得几个jar包,放在WebRoot->WEB-INF->lib 目录下。 2.将WEB应用部署到tomcat服务器上:找到tomacat的安装目录Tomcat6.x\apache-tomcat-6.0.33\conf,打开其中的server.xml文件,在文件末尾上面加入例如 这样的句子,其中path的值为你需要访问网站的上下文,docBase的值为该web项目的WebRoot所在的目录,最后一个readloadable最好选true。 3.在WebRoot->WEB-INF->web.xml中加入struts2的过滤

器将部署好的应用纳入到struts2的管辖范围类,具体代码如下 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPre pareAndExecuteFilter struts2 /* 4.在web项目的src目录下,建一个struts.xml文件,这里是处理struts整个流程的文件。在其中加入 上面的name随便取,extends绝对不能变。 5.这样以后,启动tomcat服务器看看能不能正常启动,如果正常启动后,在浏览器上访问,http://localhost/上下文/index.jsp看能不能进入,若能进入则表示struts2的框架已经成功加到web项目中了,可以开始下一步了。

centos SSH配置详解

基本概念 linux自带的ssh为OpenSSH ssh协议提供两种用户认证方式 1、基于口令的安全认证:使用用户名、密码的方式对登录用户进行认证 2、基于密钥的安全认证:使用公钥和私钥对的方式对登录用户进行认证 OpenSSH的rpm包由四部分组成(默认已安装) openssh-4.3p2-26.el5.i386.rpm(一定要先安装这个rpm包) openssh-server-4.3p2-26.el5.i386.rpm openssh-clients-4.3p2-26.el5.i386.rpm openssh-askpass-4.3p2-26.el5.i386.rpm (在图形界面下使用ssh服务时才需要) openssh的主配置文件为: /etc/ssh/sshd_config #ssh服务器的配置文件 /etc/ssh/ssh_config #ssh客户端的配置文件 openssh支持使用scp(加密的拷贝)和sftp(加密的ftp)等客户端程序进行远程主机的文件复制 OpenSSH服务器端配置实例1:基于用户名密码的登录方式 1、vi /etc/ssh/sshd_config (以下列出的是常用配置) #Port 22 #定义ssh监听的端口号,默认为22 #Protocol 2,1 #设置使用ssh协议的顺序,先使用ssh2,如果不成功再使用ssh Protocol 2 #设置只使用ssh2协议 #ListenAddress 0.0.0.0 #设置ssh服务器绑定的ip地址,默认为所有可用的ip地址 #PermitRootLogin yes #设置是否允许root登录,默认允许 #PermitEmptyPasswords no #设置是否允许空密码的客户登录,默认为禁止 PasswordAuthentication yes #设置是否使用口令认证方式,如果要使用公钥认证方式, 可将其设置为no 2、重启ssh服务 /etc/init.d/sshd restart 3、如果启用了iptables,则需要添加如下语句来开放ssh iptables –I INPUT –p tcp –dport 22 –j ACCEPT iptables –I OUTPUT –p tcp –sport 22 –j ACCEPT 3、windows客户端登录 使用xshell、putty、securecrt等客户端软件都可以登录 4、linux客户端登录 1、安装openssh-clients (默认已安装) 2、ssh命令的基本使用 ssh username@sshserver ssh –l username sshserver

SSH集成spring-Struts2整合详细步骤

搭建SSH框架spring与struts2的集成 1:单独配置struts 一:导入struts包 二:编写Action public class JboaEmployeeAction extends ActionSupport { public String login(){ System.out.println("login.............."); return SUCCESS; } }

三:配置struts.xml index.jsp 四:配置web.xml ---struts2的核心控制器 index.jsp

华为及H3C设备 SSH配置命令

1.生产本地密钥对: system-view [HUAWEI] rsa local-key-pair create 2.模数:1024 3.配置VTY用户界面: [HUAWEI] user-interface vty 0 4 [HUAWEI-ui-vty0-4] authentication-mode aaa [HUAWEI-ui-vty0-4] protocol inbound ssh [HUAWEI-ui-vty0-4] quit 4. 创建SSH用户,并配置用户的认证方式为password:[HUAWEI] ssh user client001 authentication-type password 5.配置aaa: [HUAWEI] aaa [HUAWEI-aaa] local-user client001 password cipher huawei [HUAWEI-aaa] local-user client001 privilege level 3 [HUAWEI-aaa] local-user client001 service-type ssh 6.使能STelent功能: [HUAWEI] stelnet server enable 7.配置用户的服务类型为STelnet: [HUAWEI] ssh user client001 service-type stelnet 8.客户端第一次登录: [HUAWEI] ssh client first-time enable

(1) 配置SSH服务器Switch # 生成RSA及DSA密钥对,并启动SSH服务器。 system-view [Switch] public-key local create rsa [Switch] public-key local create dsa [Switch] ssh server enable # 设置SSH客户端登录用户界面的认证方式为AAA认证。 [Switch] user-interface vty 0 4 [Switch-ui-vty0-4] authentication-mode scheme # 设置Switch上远程用户登录协议为SSH。 [Switch-ui-vty0-4] protocol inbound ssh [Switch-ui-vty0-4] quit # 创建本地用户client001,并设置用户访问的命令级别为3。 [Switch] local-user client001 [Switch-luser-client001] password simple aabbcc [Switch-luser-client001] service-type ssh level 3 [Switch-luser-client001] quit # 配置SSH用户client001 的服务类型为Stelnet,认证方式为password认证。[Switch] ssh user client001 service-type stelnet authentication-type password

ssh配置手册

SSH配置完全手册 前言: 为何使用 OpenSSH? 您每天使用的标准网络服务(如 FTP、Telnet、RCP 和远程 Shell (rsh) 等)在封闭环境中运行良好,但使用这些服务在网络上传输的信息是未加密的。任何人都可以在您的网络或远程计算机上使用包嗅探器查看交换的信息,有时甚至可以查看密码信息。 而且,使用所有此类服务时,在登录过程中用于自动登录的选项会受到限制,并且通常依赖于将纯文本密码嵌入到命令行才能执行语句,从而使登录过程变得更加不安全。 开发的安全 Shell (SSH) 协议可以排除这些限制。SSH 能够为整个通信通道提供加密,其中包括登录和密码凭据交换,它与公钥和私钥一起使用可以为登录提供自动化身份验证。您还可以将 SSH 用作基础传输协议。以这种方式使用 SSH 意味着在打开安全连接后,加密通道可以交换所有类型的信息,甚至 HTTP 和SMTP 可以使用该方法来保证通信机制的安全。 OpenSSH 是 SSH 1 和 SSH 2 协议的免费实现。它最初是作为 OpenBSD (Berkeley Software Distribution) 操作系统的一部分开发的,现在被发布为UNIX 或Linux? 和类似操作系统的常规解决方案。 安装 OpenSSH OpenSSH 是免费软件,可以从 OpenSSH 的主要网站下载(请参见参考资料)。可以使用多种系统(包括 Linux、HP-UX、AIX?、Solaris、Mac OS X 等)上的源代码构建 OpenSSH 系统。通常可以找到所选平台和版本的预编译二进制代码。有些供应商甚至作为操作系统的一部分提供 OpenSSH 工具包。 要构建OpenSSH,您需要以下内容: ? C 编译器(GNU C 编译器 (gcc) 或类似编译器) ?Zlib –压缩库 ?OpenSSL –安全套接字层 (SSL) 安全库 注意:

SSH(整合)简单登录过程详解

MyEclipse开发SSH(Struts+Spring+Hibernate)范例1. 准备 工具:MyEclipse 5.1.0 GA、Tomcat 5.5 环境:Struts1.1、Spring1.2、Hibernate3.1、sqlserver2000 1.1. 新建工程 本范例使用最简单的登录模块来实践SSH的开发,旨在体会和入门SSH技术的整合操作:[Menu] File/New/Web Project 工程名:login 2. Struts 部分 2.1. 添加Struts 功能支持 操作:[Menu] MyEclipse/Project Capabilities/Add Struts Capabilities

修改web.xml 分别创建index.jsp、login.jsp、success.jsp先不对jsp页面做任何修改2.2. 创建ActionForm 类 操作:[Ctrl+N] MyEclipse/Web-Struts/Struts 1.1 Form 类名:LoginForm

在"Form Properties" 选项卡为loginForm 新增两个属性:username、password; 2.3. 创建Action 类 类名:LoginAction

在"Form" 选项卡的"Name" 项选择"loginForm","Input Source" 项输入"/login.jsp"。 在Forwards中创建两个forward对象 success登录成功,跳转到success.jsp fail登录失败,跳转到login.jsp重新登录 此时struts-config.xml代码如下 2.4. 修改jsp 文件 index.jsp代码

ssh 配置文件

1.集成Spring和Hiberante

H3C 路由器、交换机 SSH配置步骤

1.1 设备作为SSH服务器配置举例 1.1.1 password认证配置举例 1. 组网需求 如图1-1,配置Host(SSH客户端)与Switch建立本地连接。Host采用SSH 协议登录到Switch上,以保证数据信息交换的安全。SSH用户采用的认证方 式为password认证。 2. 组网图 SSH client SSH server 图1-1SSH本地配置组网图 3. 配置步骤 (1) 配置SSH服务器Switch # 生成RSA密钥对,并启动SSH服务器。 system-view [Switch] public-key local create rsa [Switch] ssh server enable # 配置VLAN接口1的IP地址,客户端将通过该地址连接SSH服务器。 [Switch] interface vlan-interface 1 [Switch-Vlan-interface1] ip address 192.168.1.40 255.255.255.0 [Switch-Vlan-interface1] quit # 设置SSH客户端登录用户界面的认证方式为AAA认证。 [Switch] user-interface vty 0 4 [Switch-ui-vty0-4] authentication-mode scheme # 设置Switch上远程用户登录协议为SSH。 [Switch-ui-vty0-4] protocol inbound ssh [Switch-ui-vty0-4] quit # 创建本地用户client001,并设置用户访问的命令级别为3。 [Switch] local-user client001 [Switch-luser-client001] password simple/ (cipher 密文) aabbcc [Switch-luser-client001] service-type ssh level 3 [Switch-luser-client001] quit # 配置SSH用户client001的服务类型为Stelnet,认证方式为password认证。

SSH2整合

Spring+Hibernate+Struts2整合文档 一、Spring+Struts2整合: 1、spring配置在web.xml文件中的上下文监听器: contextConfigLocation /WEB-INF/applicationContext*.xml org.springframwork.web.content.ContextLoaderListener 2、struts2配置在web.xml文件中的过滤器: struts2 org.apache.struts2.dispatcher.FilterDispatcher org.springframework.web.context.ContextLoaderListener struts2 /* 3、设置struts.xml文件,就可以使用spring的IOC来管理struts的Action:

Eclipse 配置SSH 详解

Eclipse 配置SSH 详解 开发环境: eclipse-jee-kepler-SR1-win32 4.3.0 apache-tomcat-7.0.2 i jdk-7u1-windows-i586 l SSH版本: hibernate-search-4.4.2.Final-dist spring-framework-4.0.0 struts-2.3.16-all 6 MYSQL版本: mysql-connector-java-5.1.28 也许有第一次使用的朋友们观看,因此顺便也说说环境变量的配置 我的电脑->属性->高级->环境变量->系统变量 添加变量 JDK环境变量配置: JAVA_HOME=D:\Program Files (x86)\Java\jdk1.7.0_01 classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定不能少,因为它代表当前路径) path=%JAVA_HOME%\bin apache环境变量配置: CATALINA_HOME=D:\Program Files\apache-tomcat-7.0.50; CATALINA_BASE=D:\Program Files\apache-tomcat-7.0.50; 最后将servlet.jar在环境变量classpath后追加%CATALINA_HOME%\common\lib\servlet.jar; 修改后的classpath如下: classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\co mmon\lib\servlet.jar; 启动apache 运行lib/startup.bat即可(默认端口8080) 下面开始配置SSH框架: 1.新建一个web 项目 File->New->Dynamic Web Project

SSH集成开发宝典步骤

SSH集成开发宝典步骤 SSH集成开发步骤v1.0 -----Chris 2008-11-5

目录1,前言 2,软硬件 3,步骤一:建立web project 4,步骤二:添加struts支持 5,步骤三:添加spring支持 6,步骤四:添加hibernate支持 7,步骤五:添加dbcp数据库支持jar包 8,步骤六:实现DAO的依赖注入 9,步骤七:实现service的依赖注入 10,步骤八:struts&spring集成 11,步骤九:运行 12,附录

前言 使用当前流行框架Struts 1.2&Spring 2.0&Hibernate 3.1集成开发web 项目。从中体味struts的MVC模式、Spring的依赖注入和hibernate的持久性的无缝集成。实现查询oracle数据库中雇员表的详细信息。同时解析hibernate 延迟查询导致数据不能显示的原因。 $ 软硬件环境 Tomcat 6.0 & My eclipse 6.0.1; 步骤一:建立web project 图一,打开MyEclipse,File->newàProject…

图二,第3步选择web Project 图三,输入项目名,点Finish完成。 步骤二:添加struts支持 图四,project CapabilitiesàAdd Struts Capabilities…

图五 步骤三:添加Spring支持 图六

图七,第14步勾上Spring 2.0 Web Libraries来支持web项目,如果使用AOP 技术则勾上spring 2.0 AOP Libraries.

AIX_SSH配置手册

SSH配置完全手册 前言 为何使用 OpenSSH 您每天使用的标准网络服务(如 FTP、Telnet、RCP 和远程 Shell (rsh) 等)在封闭环境中运行良好,但使用这些服务在网络上传输的信息是未加密的。任何人都可以在您的网络或远程计算机上使用包嗅探器查看交换的信息,有时甚至可以查看密码信息。 而且,使用所有此类服务时,在登录过程中用于自动登录的选项会受到限制,并且通常依赖于将纯文本密码嵌入到命令行才能执行语句,从而使登录过程变得更加不安全。 开发的安全 Shell (SSH) 协议可以排除这些限制。SSH 能够为整个通信通道提供加密,其中包括登录和密码凭据交换,它与公钥和私钥一起使用可以为登录提供自动化身份验证。您还可以将 SSH 用作基础传输协议。以这种方式使用 SSH 意味着在打开安全连接后,加密通道可以交换所有类型的信息,甚至 HTTP 和 SMTP 可以使用该方法来保证通信机制的安全。 OpenSSH 是 SSH 1 和 SSH 2 协议的免费实现。它最初是作为 OpenBSD (Berkeley Software Distribution) 操作系统的一部分开发的,现在被发布为 UNIX 或 Linux?和类似操作系统的常规解决方案。 安装 OpenSSH OpenSSH 是免费软件,可以从 OpenSSH 的主要网站下载(请参见参考资料)。可以使用多种系统(包括 Linux、HP-UX、AIX?、Solaris、Mac OS X 等)上的源代码构建 OpenSSH 系统。通常可以找到所选平台和版本的预编译二进制代码。有些供应商甚至作为操作系统的一部分提供 OpenSSH 工具包。 要构建OpenSSH,您需要以下内容: C 编译器(GNU C 编译器 (gcc) 或类似编译器) Zlib –压缩库 OpenSSL –安全套接字层 (SSL) 安全库 注意: 在AIX上安装SSH , 需要安装OpenSSL来获得支持 . 否则, 安装会不成功 , 报错信息提示也要先安装OpenSSL . OpenSSL可以登陆IBM官网下载 , SSH软件从 project/group_id=127997 上下载 .

SSH框架整合详解(精典)

已经经过本人测试 第一步:准备工作 MyEclipse 6.0------T omcat6.0 所需jar文件:(所有jar文件已整理ssh_jars文件夹)注意:ssh_test项目中采用的是MySql 数据库。而本文档中配置的是Oracle数据库,注意其中配置的不同之处哦(在相应的地方有注明) 第二步:(建立项目,包结构,导入所需jar文件) 新建一个web project:

建立包结构如下: 各包功能说明: com.ssh.config : 配置文件(*.properties),如数据库配置信息com.ssh.resource : 资源文件 https://www.doczj.com/doc/6d2107071.html,m : 公共工具(util)包

com.ssh.util.orm.hibernate : hibernate DAO 模板com.ssh.model : 各实体类文件 com.ssh.service : 业务逻辑包相当于biz com.ssh..test : 测试包 com.ssh.action : struts Action 包结构可以根据自己需要自行划分 导入jar文件: 新建一个User Library: sshJars 添加jar文件:

将新建的User Library: sshJars加入到项目中: 第三步:撰写资源文件 jdbc.properties 在jdbc.properties 里写上连接数据库的配置信息,此文件的配置信息用于在spring的配置文件中使用,数据库的配置信息也可以写到Spring 的配置文件中,这在一个jdbc.properties文件中是为了方便更改. 在com.ssh.resource包中新建下列文件:

相关主题
文本预览
相关文档 最新文档