SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。SSH有两个版本,我们现在介绍的是版本2。
一、安装SSH
具体步骤如下:
获得SSH软件包。(ftp://ftp.pku.edu.cn:/pub/unix/ssh-2.3.0.tar.gz)
成为超级用户(root).
#gzip–cdssh-2.3.0.tar.gz|tarxvf–
#cdssh-2.3.0
#./configure
注意,如果你希望用tcp_wrappers来控制SSH,那么在configure时需要加上选项--with-libwrap=/path/to/libwrap/,用来告诉SSH关于libwrap.a和tcpd.h的位置。
#make
#makeinstall
和SSH有关的程序都放置在/usr/local/bin下,包括ssh,sftp,sshd2,ssh-keygen等。
二、配置
SSH的配置文件在/etc/ssh2下,其中包括sshd2的主机公钥和私钥:hostkey和hostkey.pub。这两个文件通常是在安装SSH时自动生成的。你可以通过下面的命令重新来生成它们:
#rm/etc/ssh2/hostkey*
#ssh-keygen2–P/etc/ssh2/hostkey
而ssh2_config文件一般情形下无需修改。
三、启动sshd2
每个要使用SSH的系统都必须在后台运行sshd2。用手工启动:
#/usr/local/bin/sshd2&
可以在/etc/rc2.d/S99local中加入该命令,这样系统每次启动时会自动启动sshd2。
四、用tcp_wrappers控制SSH
安装SSH的站点可以用tcp_wrappers来限制哪些IP地址可以通过ssh来访问自己。比如,在/etc/hosts.allow中加入
sshd,sshd2:10.0.0.1
那么只有10.0.0.1可以通过ssh来访问该主机。
以上都是系统管理员完成的工作。下面我们说说普通用户如何使用SSH。
五、基本应用
每个用户在使用SSH之前,都要完成以下步骤:
在本地主机(比如,local.pku.edu.cn)上生成自己的ssh公钥和私钥。命令如下:
local#ssh-keygen
Generating1024-bitdsakeypair
1oOo.oOo.o
Keygenerated.
1024-bitdsa,teng@ns,FriOct20200017:27:05
Passphrase:************/*在此输入你的口令,以后访问这台主机时要用。
Again:************/*
Privatekeysavedto/home1/teng/.ssh2/id_dsa_1024_a
Publickeysavedto/home1/teng/.ssh2/id_dsa_1024_a.pub
生成的私钥和公钥(id_dsa_1024_a和id_dsa_1024_a.pub)存放在你家目录的~/.ssh2目录下。和用户相关的SSH配置文件都在~/.ssh2下。私钥由用户保存在本地主机上,而公钥需传送到远地主机的你自己的帐号的~/.ssh2下,如果你要用ssh2访问本地主机的话。
在~/.ssh2下创建identification文件用来说明进行身份认证的私钥。命令如下:
local:~/.ssh2#echo"IdKeyid_dsa_1024_a">identification
3.同样地,在远地主机(比如,remote.pku.edu.cn)上完成上面步骤。
4.将本地(local.pku.edu.cn)下你自己(这里是teng)的公钥(id_dsa_1024_a.pub)拷贝到远地主机(remote.pku.edu.cn)上你自己家目录下的.ssh2目录下,可命名为local.pub,一般用ftp上传即可。
在远地主机上,你自己家目录的.ssh2目录下,创建authorization文件,其中指定用来进行身份认证的公钥文件。命令如下:
remote:~/.ssh2#echoKeylocal.pub>authorization
现在你可以从本地用ssh2登录到远地系统了。命令如下:
local#sshremote.pku.edu.cn
Passphraseforkey"/home1/teng/.ssh2/id_dsa_1024_a"withcomment"1024-bitdsa,
teng@ns,FriOct20200017:27:05":***********
这时会要你输入你的ssh口令(Passphrase)。验证通过后,即登录到remote主机上。