Redhat linux 9下ssh的配置和使用
Redhat linux
9默认情况下Ssh服务器已经是安装上的。我们所要做的就是做一些配置,让客户可以从外界进行访问。
这里有二种方式:用户界面,Bash控制台。
1、 用户界面
启动服务
1) 进入linux, 主菜单->系统设置->
服务器设置->服务。
2)在“服务配置”里面,选中“sshd”和”vsftpd”(针对ssh secture
shell,提供与本地系统的文件访问与操作),并保证二者处于“运行”的状态。然后保存退出。
更改安全设置
以同样的方式,进入主菜单->系统设置->
安全级别:安全级别配置
首先,选中“定制”。然后,找到你系统所提供的信任的设备项,我这里用的是“eth0”。最后,在“允许进入”里面,勾上“SSH”,保存退出。
下面,应该就可以通过putty或ssh secture
shell等客户端工具进行访问了。
2、 Bash控制台
a. 验证sshd服务是否安装
[root@wljs root]# rpm –q sshd
b. 更改sshd服务访问端口
[root@wljs root]# cd /etc/ssh/
[root@wljs root]# vi sshd_config
#Port 22
#Protocol 2,1
#ListenAddress 0.0.0.0
#ListenAddress ::
把者说#Port 22
修改为
Port 8001
c. 重启sshd服务
[root@wljs root]# cd
/etc/rc.d/init.d/
[root@wljs root]# sshd restart 或
[root@wljs root]# service sshd restart
附:Ssh服务器端安装
1、环境:
因为我们选用的SSH服务器是http://www.ssh.com 的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.i386.rpm
, 大家可以到以下地址下载:
http://ftp.ssh.com/priv/secureshell/329wks+srv-lt49ldrk/linux/ssh-3.2.9-1.i386.rpm
安装时请用管理员权限
# rpm –ivh ssh-3.2.9-1.i386.rpm 如果是升级安装那参数就用
–Uvh
而3.2.9-1的TAR包大家可以到http://downloads.planetmirror.com/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,安装完后一般不用配置它,但如果你的22端口在安装ssh
server之前已经被其他程序占用,那么你需要简单的配置一下这个文件,执行
vi /etc/ssh2/sshd2_config,找到第27行,Port 22
,把22改成其他的端口就可以了。
4、启动Ssh server
Ssh server
的默认启动文件是/usr/local/sbin/sshd2,而安装程序自动做了一个连接到这个文件的名字为sshd的文件,我们只要在/usr/local/sbin/目录中执行
./sshd & 就可以简单的启用Ssh server,然后我们执行 # netstat
–na
会看见22端口已经被监听了(你的可能是其他端口,具体看你在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 S13sshd
这样就达到了我的要求,好了,Ssh
server的安装就介绍到这里吧,安装是很简单的,希望大家编译安装成功。
SSH客户端之SSH Secure Shell 的连接方法
1、运行环境
WINDOWS下安装SSH客户端,名字是SSHSecureShellClient-3.2.9.exe,可以到http://www.ssh.com/下载,当然了,在SERVER端我们也可以安装Openssh,但此文章着重介绍的是ssh的技术,所以我们使用的是http://www.ssh.com/
for UNIX/LINUX 的SERVER
端,现在最新版本是ssh-3.2.9-1.i386.rpm(如果你是AIX或者SOLARIS,要下不同的版本,这里以RHCE3为例子)。确定把UNIX类主机的默认的Openssh全部卸载掉后安装ssh-3.2.9-1.i386.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的密钥,默认是2048位,足够我们用的了,还可以使用dsa方式的密钥。我就不在这里说明了
系统自动生成密钥对,默认放在C:\Documents and
Settings\XXX\Application
Data\SSH\UserKeys目录下,其中XXX是你执行程序时用的帐户,默认名称是id_rsa_2048_a和id_rsa_2048_a.pub,而后者就是我们要传到服务器上的公钥。(生成密钥对的同时让你输入一个密码,因为我们想不输入密码直接登陆服务器,所以就直接回车了,但如果你想更安全一些,还是建议你在这里也输入密码。)
4、用SSH客户端从本机登陆到远程UNIX类服务器上
我们还按以前的方法登陆到远程UNIX类服务器上,这样登陆后我们会在用户目录下,PWD一下,你可以看到你的用户目录路径,比如我的就是/home/test,那么好了,我们建立一个.ssh2的文件夹,在里面建立一个文件,authorization,内容如下:
key id_rsa_2048_a.pub
然后把你WINDOWS客户端上的id_rsa_2048_a.pub上传到你在UNIX类服务器上刚建立好的.ssh2文件夹下,关闭SSH客户端。
5、用SSH客户端公钥认证状态登陆
重新启动SSH客户端,在登陆认证状态栏选择Public
Key方式,登陆到你刚才放id_rsa_2048_a.pub的那台服务器,你会发现你马上就登陆进来了,没有密码限制了。这个时候用公私钥认证和用密码认证同时存在,还没有达到我们的要求,那我们就在UNIX类服务器上修改/etc/ssh2/sshd2_config文件
把以下如下三行的password 删除,下面这三行是修改好的
AllowedAuthentications publickey
AllowedAuthentications hostbased,publickey
RequiredAuthentications publickey
这样当你再用密码登陆的时候就出现如下对话框了!