1.Solaris 源码10 Openssh安装和配置
2.ssh是什么意思?
3.Solaris8安装OPENSSH方法
4.SSH客户端之SSH Secure Shell 的连接方法
Solaris 10 Openssh安装和配置
SSH(Secure Shell)最初由芬兰的一家公司开发,但由于受版权和加密算法的源码限制,很多人转而使用免费的源码替代软件OpenSSH。SSH是源码由客户端和服务端的软件组成的,有两个不兼容的源码版本,分别是源码openjpeg源码分析:1.x和2.x。用SSH 2.x的源码客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.xsolaris使用的源码ssh服务器是opensshd,当然也有付费的源码商业版本的sshd出售。就目前的源码情况看来,openssh已经在你安装操作系统的源码时候默认安装在系统上了,而且这个服务会随系统自动运行。源码可以使用命令svcs查看ssh是源码否正常运行,如图2 如果已经正常运行可以关闭不安全的源码telnet服务。
图2 关闭不安全的源码telnet服务
下面需要理解OPENSSH配置文件/etc/ssh/sshd_config。
“/etc/ssh/sshd_config” 配置文件是OpenSSH的配置文件,允许设置选项改变这个守护进程的运行。这个文件的每一行包含“关键词-值”的匹配,其中“关键词”是忽略大小写的。下面列出来的是最重要的关键词。编辑“sshd_config”文件(vi /etc/ssh/sshd_config),加入或改变下面的参数(#后是说明文字):
Protocol 2
#使用版本2协议#
Port
# “Port”设置sshd****的端口号。#
ListenAddress ::
#“ListenAddress”设置sshd服务器绑定的IP地址。#
AllowTcpForwarding no
#是否许可端口转发#
GatewayPorts no
#是否许可使用网关端口#
XForwarding yes
XDisplayOffset
XUseLocalhost yes
#“XForwarding”设置是否允许X转发。#
PrintMotd no
#“PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。#
KeepAlive yes
SyslogFacility auth
LogLevel info
#“LogLevel”设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮助页,已获取更多的信息。#
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#“HostKey”设置包含计算机私人密匙的文件。#
ServerKeyBits #“ServerKeyBits”定义服务器密匙的位数。#
KeyRegenerationInterval
#“KeyRegenerationInterval”设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。#
StrictModes yes
# StrictModes”设置ssh在接收登录请求之前是源码价格1280否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限#
LoginGraceTime
MaxAuthTries 6
MaxAuthTriesLog 3
PermitEmptyPasswords no
#是否许可空密码登录#
PasswordAuthentication yes
#“PasswordAuthentication”设置是否允许口令验证。#
PAMAuthenticationViaKBDInt yes
PermitRootLogin no
#是否许可root用户登录#
# sftp subsystem
Subsystem sftp /usr/lib/ssh/sftp-server
IgnoreRhosts yes
RhostsAuthentication no
RhostsRSAAuthentication no
#“RhostsAuthentication”设置只用rhosts或“/etc/hosts.equiv”进行安全验证是否已经足够。#
RSAAuthentication yes
#“RSAAuthentication”设置是否允许只有RSA安全验证。#
另外一个配置文件是“/etc/ssh/ssh_config”文件是OpenSSH系统范围的配置文件,允许你通过设置不同的选项来改变客户端程序的运行方式下面逐行说明上面的选项设置:
Host*:选项“Host”只对能够匹配后面字串的计算机有效。“*”表示所有的计算机。
ForwardAgentno :“ForwardAgent”设置连接是否经过验证代理(如果存在)转发给远程计算机。
ForwardXno:“ForwardX”设置X连接是否被自动重定向到安全的通道和显示集(DISPLAYset)。
RhostsAuthenticationno :“RhostsAuthentication”设置是否使用基于rhosts的安全验证。
RhostsRSAAuthenticationno :“RhostsRSAAuthentication”设置是否使用用RSA算法的基于rhosts的安全验证。
RSAAuthenticationyes:RSAAuthentication”设置是否使用RSA算法进行安全验证。
PasswordAuthenticationyes :“PasswordAuthentication”设置是否使用口令验证。
FallBackToRshno:“FallBackToRsh”设置如果用ssh连接出现错误是否自动使用rsh。
UseRshno:“UseRsh”设置是否在这台计算机上使用“rlogin/rsh”。
BatchModeno:“BatchMode”如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用。
CheckHostIPyes:“CheckHostIP”设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为“yes”。
StrictHostKeyCheckingno:“StrictHostKeyChecking”如果设置成“yes”,ssh就不会自动把计算机的密匙加入“$HOME/.ssh/known_hosts”文件,并且一旦计算机的密匙发生了变化,就拒绝连接。
IdentityFile~/.ssh/identity :“IdentityFile”设置从哪个文件读取用户的RSA安全验证标识。
Port:“Port”设置连接到远程主机的端口。
Cipherblowfish :“Cipher”设置加密用的密码。
EscapeChar~:“EscapeChar”设置escape字符。
你可以修改这两个配置文件以获得更好的安全性。
上一页12 3 下一页
ssh是什么意思?
SSH,全称为Secure Shell Protocol,是Androidlua工具源码一种保障在网络不安全环境下提供安全远程访问服务的协议。其主要功能是通过加密技术确保数据传输的安全,避免密码被窃取和监听。SSH最初是针对Unix系统设计的,但如今已扩展到众多平台,包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix、SCO、Windows /、NT等,甚至在非Unix系统中也有测试版客户端可用。它的重要性在于,作为免费软件,用户可以获取源代码进行自定义修改,且性能可随着社区贡献不断提升。
SSH通过SSH客户端和服务端软件实现,支持多种身份验证方式,如Kerberos和安全ID卡。在版本更新中,OpenSSH作为SSH的替代方案,因其开源且免费,逐渐成为更受欢迎的选择。OpenSSH支持SSH 1.x和2.x,解决了不同版本之间的兼容性问题。SSH主要由三个部分组成:传输层协议提供服务器认证、保密性和完整性;用户认证协议确保客户端用户身份;连接协议用于建立安全连接并支持多种功能,如远程登录、数据转发等。
SSH通过加密技术,如SSH-TRANS的手机下载源码强力加密,保护数据传输免受中间人攻击,同时防止DNS欺骗和IP欺骗。它还提供了数据压缩功能,提高了传输速度。客户端与服务端通过交换密钥进行身份验证,如sshd守护进程,而客户端应用程序如scp、sftp等则执行具体任务。总体来说,SSH是为网络通信提供强大安全防护的重要工具。
Solaris8安装OPENSSH方法
在Solaris8上安装OPENSSH注:得到Solaris 8的random补丁PRNG is not seeded这个问题所困扰 下面是我的解决办法
首先要保证openssh所要求的包你都安装了
A、sun的patch -
其实这个patch安装了有时也没有用 打这个patch的目的是因为8默认没有一个随机数设备
安装这个patch就是为解决这个问题 但从实际使用情况来看,没有什么用 所以建议不要安装。
以上这步我没有做,不过先留在这里吧!1、安装一个第3方的软件 ANDIrand-0.7-5.8-sparc-1.pkg
安装了这个软件之后,会在/dev/目录下生成2个随机数设备
random urandom
安装之后不用重起
这时你在起 openssh 就会正常了
这个软件的下载地址
for 2.6
/indexsparc8.html下载)
openssh-3.5p1-sol8-sparc-local.gz
openssl-0.9.6g-sol8-sparc-local.gz
tcp_wrappers-7.6-sol8-sparc-local.gz (可选,但推荐安装)
zlib-1.1.4-sol8-sparc-local.gz
libgcc-3.2-sol8-sparc-local.gz
perl-5.6.1-sol8-sparc-local.gz (可选)
prngd-0.9.-sol8-sparc-local.gz (可选) 这个我没有装
egd-0.8-sol8-sparc-local.gz (可选) 这个我也没装3、安装软件包
# gunzip openssh-3.5p1-sol8-sparc-local.gz
# gunzip openssl-0.9.6g-sol8-sparc-local.gz
# gunzip zlib-1.1.4-sol8-sparc-local.gz
# gunzip libgcc-3.2-sol8-sparc-local.gz (假如你还未安装gcc 3.2)
# gunzip tcp_wrappers-7.6-sol8-sparc-local.gz (可选)
其他可选包也可同样操作,然后用root权限运行如下命令
# pkgadd -d openssh-3.5p1-sol8-sparc-local
# pkgadd -d openssl-0.9.6g-sol8-sparc-local
# pkgadd -d zlib-1.1.4-sol8-sparc-local
# pkgadd -d libgcc-3.2-sol8-sparc-local (假如你还未安装gcc 3.2)
# pkgadd -d tcp_wrappers-7.6-sol8-sparc-local (可选)
一旦你已经安装了以上包后,在目录/usr/local下你将得到很多子目录。ssl文件的默认路径是
/usr/local/ssl。(((当这些文件被编译为不将目录(/usr/local/lib和/usr/local/ssl/lib)加入
LD_LIBRARY_PATH,那可能将需要设置它们。)))***这句话我不理解
现在你将可以在目录/usr/local/bin中找到ssh在目录/usr/local/sbin中找到sshd。确定你将目录/usr/local/bin和目录/usr/local/sbin加到了你的PATH环境变量中。在可选的egd包中的perl脚本程序(.pl后缀)将要在目录/usr/local/bin中
寻找perl。假如你使用的是Sun Perl,那么Perl脚本程序开头改为/usr/bin,然而使用安装包的为/usr/local/bin4、建立sshd用户和/var/empty目录
# mkdir /var/empty
# chown root:sys /var/empty
# chmod /var/empty
# groupadd sshd
# useradd -g sshd -c 'sshd privsep' -d /var/empty -s /bin/false sshd
/var/empty 不应该包含任何文件.5、安装tcp_wrappers
tcp_wrappers是voip电话源码被用来限制某些有限组机器访问你的通信端口,例如sshd程序使用的端口。假如你已经运行了tcp_wrappers,那么你只要确定sshd守护进程条目是否在/etc/hosts.allow和/etc/hosts.deny文件中。假如你当前没有运行tcp_wrappers,你首先应该创建文件/etc/hosts.deny并在文件中加入一行
sshd:ALL
然后,创建文件/etc/hosts.allow并加入一行,例如
sshd:...
"..."处填写你允许与你的机器通信的IP列表,例如
sshd:...
此例说明允许...子网的机器访问你的机器。6、安装ssh和sshd
这是最后一步。每一台你想通过ssh客户端进行通信的机器都需要运行一个sshd守护进程。首先,你需要在服务器机器上运行下面的命令来创建秘钥信息。再次确定目录/usr/local/bin和/usr/local/sbin是否在你的PATH中。假如你以前曾经运行过sshd并且在/usr/local/etc下有秘钥,那么运行下面这些命令将会覆盖它们。用root权限,输入:
# ssh-keygen -t rsa1 -f /usr/local/etc/ssh_host_key -N ""
# ssh-keygen -t dsa -f /usr/local/etc/ssh_host_dsa_key -N "" **//"为双引号
# ssh-keygen -t rsa -f /usr/local/etc/ssh_host_rsa_key -N ""
每一条命令可能要花费几分钟的事件,这取决于你机器的速度。等到每条命令结束为止。
完成之后,我们可以创建脚本来启动sshd守护进程。下面编辑一个简单的启动脚本,并把它放置
在/etc/init.d目录下(root权限):
#vi /etc/init.d/sshd
内容如下:
#!/bin/sh
pid=`/usr/bin/ps -e | /usr/bin/grep sshd | /usr/bin/sed -e 's/^ *//' -e 's/ .*//'`case $1 in'start')/usr/local/sbin/sshd
;;
'stop')if [ "${ pid}" !="" ]then
/usr/bin/kill ${ pid}fi;;*)echo "usage:/etc/init.d/sshd { start|stop}";;esac然后运行如下命令:
# chown root /etc/init.d/sshd
# chgrp sys /etc/init.d/sshd
# chmod /etc/init.d/sshd
# ln -s /etc/init.d/sshd /etc/rc2.d/Ssshd
# /etc/rc2.d/Ssshd start
通过上面这条命令可以手工启动进程
# /etc/rc2.d/Ssshd stop
此条命令将停止sshd守护进程
也可以这样启动: /etc/init.d/sshd start
# ps -ef | grep sshd
此条命令可以查看是否启动了sshd
再从某台机使用ssh xx.xx.xx.xx是否能登录
SSH客户端之SSH Secure Shell 的连接方法
1、运行环境
WINDOWS下安装SSH客户端,名字是SSHSecureShellClient-3.2.9.exe,可以到/下载,当然了,在SERVER端我们也可以安装Openssh,但此文章着重介绍的是ssh的技术,所以我们使用的是/ for UNIX/LINUX 的SERVER 端,现在最新版本是ssh-3.2.9-1.i.rpm(如果你是AIX或者SOLARIS,要下不同的版本,这里以RHCE3为例子)。确定把UNIX类主机的默认的Openssh全部卸载掉后安装ssh-3.2.9-1.i.rpm。
2、为什么要公私钥认证方法(连接到主机不输入密码)
我们需要知道Publick Key是指公钥,而private key是指私钥。认证的过程是这样的:public key对数据进行加密而且只能用于加密,private key只能对所匹配的public key加密过的数据进行解密。我们把public key放在远程系统合适的位置,然后从本地开始进行ssh连接。此时,远程的sshd会产生一个随机数并用我们产生的public key进行加密后发给本地,本地会用private key进行解密并把这个随机数发回给远程系统。最后,远程系统的sshd会得出结论——我们拥有匹配的private key允许我们登录。就这么简单!
3、在本机生成密钥过程
WINDOWS下寻找ssh-keygen2.exe文件,这是生成密钥的文件,我的在C:/Program Files/SSH Communications Security/SSH Secure Shell,在DOS下执行这个文件,方法是
C:/Program Files/SSH Communications Security/SSH Secure Shell ssh-keygen2 -t rsa
我用的是rsa的密钥,默认是位,足够我们用的了,还可以使用dsa方式的密钥。我就不在这里说明了
系统自动生成密钥对,默认放在C:/Documents and Settings/XXX/Application Data/SSH/UserKeys目录下,其中XXX是你执行程序时用的帐户,默认名称是id_rsa__a和id_rsa__a.pub,而后者就是我们要传到服务器上的公钥。(生成密钥对的同时让你输入一个密码,因为我们想不输入密码直接登陆服务器,所以就直接回车了,但如果你想更安全一些,还是建议你在这里也输入密码。)
4、用SSH客户端从本机登陆到远程UNIX类服务器上
我们还按以前的方法登陆到远程UNIX类服务器上,这样登陆后我们会在用户目录下,PWD一下,你可以看到你的用户目录路径,比如我的就是/home/test,那么好了,我们建立一个.ssh2的文件夹,在里面建立一个文件,authorization,内容如下:
key id_rsa__a.pub
然后把你WINDOWS客户端上的id_rsa__a.pub上传到你在UNIX类服务器上刚建立好的.ssh2文件夹下,关闭SSH客户端。
5、用SSH客户端公钥认证状态登陆
重新启动SSH客户端,在登陆认证状态栏选择Public Key方式,登陆到你刚才放id_rsa__a.pub的那台服务器,你会发现你马上就登陆进来了,没有密码限制了。这个时候用公私钥认证和用密码认证同时存在,还没有达到我们的要求,那我们就在UNIX类服务器上修改/etc/ssh2/sshd2_config文件
把以下如下三行的password 删除,下面这三行是修改好的
AllowedAuthentications publickey
AllowedAuthentications hostbased,publickey
RequiredAuthentications publickey
这样当你再用密码登陆的时候就出现如下对话框了!!
第二章 SSH客户端之Putty的连接方法
1、运行环境
WINDOWS下安装的SSH客户端,名字是putty-0.-installer.exe,可以到如下地址下载:
ment”作注释用于区别其他的key。“Key passphrase“和“Confirm passphrase“用于对硬盘上的key进行加密,如过你自己一个人用机器觉得安全有保障的话可以让它们为空。然后保存两个key,用默认方式保存,那么公钥你可以指定文件名,私钥默认的文件扩展名是.ppk。在这里我们命名它为test.ppk,而公钥我们保存为test.pub,需要注意的是,如果用putty连接,私钥的扩展名必须是.ppk,而且你还可以将这个.ppk的私钥保存为SSH Secure Shell 格式和Openssh格式认知的私钥,这个对两个UNIX类主机之间相互通信提供了很大帮助。(我们以后会将两个UNIX类主机通过公私钥认证的方法给大家讲讲)
4、用Putty从本机登陆到远程UNIX类服务器上
我们还按先前的方法登陆到远程UNIX类服务器上,这样登陆后我们会在用户目录下,PWD一下,你可以看到你的用户目录路径,比如我的就是/home/test,那么好了,我们建立一个.ssh2的文件夹,在里面建立一个文件,authorization,内容如下:
key test.pub
然后把你WINDOWS客户端上的test.pub上传到你在UNIX类服务器上刚建立好的.ssh2文件夹下,关闭Putty。这个上传命令你可以用 put ,下载就用get。你的通道可以用PSFTP建立,这个也在PUTTY的组件中。
5、用SSH客户端公钥认证状态登陆
重新启动Putty,建立一个session命名为test,设定你要登陆的远程ip,协议设为ssh,Connection设定在ssh的auth选项中,将private key的文件选择为刚才我们由puttygen产生的密钥test.ppk。点Open,要求输入username,我们输入用户名后远程系统开始public key认证,如果密钥有passphrase 则需要输入,否则直接就登录了。这个时候用公私钥认证和用密码认证同时存在,还没有达到我们的要求,那我们就在UNIX类服务器上修改/etc/ssh2/sshd2_config文件
把以下如下三行的password 删除,下面这三行是修改好的
AllowedAuthentications publickey
AllowedAuthentications hostbased,publickey
RequiredAuthentications publickey
这样当你再用密码登陆的时候就出现如下对话框了!!
第三章
Ssh服务器端安装
1、环境:
因为我们选用的SSH服务器是 的SSH Secure Shell for unix类产品,所以我们主要介绍一下此类的Ssh服务器的安装过程。(SSH有两个版本,我们现在介绍的是版本2;Openssh就不介绍了,大家有兴趣的话可以参考一下网上文章)
2、编译安装
我们前面介绍过,现在的Ssh server for unix 类的最新版本是ssh-3.2.9-1,我建议大家用官方提供的TAR包,当然,如果你不熟悉编译过程,用RPM等安装方式也是可以的。如果用RPM安装,请先下载ssh-3.2.9-1.i.rpm , 大家可以到以下地址下载:
/priv/secureshell/wks+srv-ltldrk/linux/ssh-3.2.9-1.i.rpm
安装时请用管理员权限
# rpm –ivh ssh-3.2.9-1.i.rpm 如果是升级安装那参数就用 –Uvh
而3.2.9-1的TAR包大家可以到/pub/ssh/ssh-3.2.9.1.tar.gz下载。安装时也使用管理员权限:
# tar xzvf ssh-3.2.9.1.tar.gz
# cd ssh-3.2.9.1
# ./configure (这里我们要说明一下,原来有些文档写如果你希望用tcp_wrappers来控制SSH,那么在configure时需要加上选项“--with-libwrap=/path/to/libwrap/”, 用来告诉SSH关于libwrap.a 和tcpd.h的位置,但3.2.0以上的SSH已经不需要这么麻烦了,它们已经内置了控制访问权限的功能。)
# make ; make install ; make clean
这样就结束了安装。
3、简单配置Ssh server
无论你是用RPM或TAR包安装的ssh server,它的配置文件都在/etc/ssh2/sshd2_config,安装完后一般不用配置它,但如果你的端口在安装ssh server之前已经被其他程序占用,那么你需要简单的配置一下这个文件,执行 vi /etc/ssh2/sshd2_config,找到第行,Port ,把改成其他的端口就可以了。
4、启动Ssh server
Ssh server 的默认启动文件是/usr/local/sbin/sshd2,而安装程序自动做了一个连接到这个文件的名字为sshd的文件,我们只要在/usr/local/sbin/目录中执行 ./sshd 就可以简单的启用Ssh server,然后我们执行 # netstat –na 会看见端口已经被监听了(你的可能是其他端口,具体看你在sshd2_config文件中的设置了。)但我们不想每次都要手动启动Ssh server,那么我们可以修改一下/etc/rc.d/rc.local文件,在这个文件的最后加入以下内容:
#start ssh
/usr/local/sbin/sshd
其中第一行为注释内容,第二行为启动SSH服务器并作为后台守护进程运行。
这样就好了,系统重起时可以自动启动SSH服务,但是启动后你如果在服务器端插上显示器,会在最后该登陆的时候看到一行字,意思就是Ssh server 服务启动了,我比较挑剔,不想看到这个提示,而且我想把Ssh服务放到LINUX服务启动过程中,这样比较美观一点。那么我们就不能修改/etc/rc.d/rc.local文件,我们要进入/etc/init.d/中建立一个SHELL文件,名字就叫sshd 内容如下:
#!/bin/bash
cd /usr/local/sbin
./sshd
然后给这个文件加上可执行权限
# chmod +x sshd
然后进入/etc/rc3.d,做一个软链接文件
# cd /etc/rc3.d
# ln -s ../init.d/sshd Ssshd
这样就达到了我的要求,好了,Ssh server的安装就介绍到这里吧,安装是很简单的,希望大家编译安装成功。