StrictModes yes -- 设置ssh在接收登录请求之前,是否检查用户家目录和rhosts文件的权限和所有权。
X11Forwarding no -- 设置是否允许X11转发。设为“yes”允许用户运行远程主机上的X程序。
PrintMotd yes -- 设置sshd是否在用户登录的时候显示“/etc/motd”中的信息
SyslogFacility AUTH -- 设���在记录来自sshd的消息的时候,是否给出“facility code”
LogLevel INFO -- 设置记录sshd日志消息的层次。INFO是一个好的选择。
RhostsAuthentication no -- 设置是否只用rhosts或“/etc/hosts.equiv”进行安全验证
RhostsRSAAuthentication no -- 设置是否允许用rhosts或“/etc/hosts.euive”加上RSA进行安全验证
RSAAuthentication yes -- 设置是否允许只有RSA进行验证
PasswordAuthentication yes -- 设置是否允许口令验证。设为no只允许用户用基于密钥的方式登录,而不能使用基于口令的方式登录。
PermitEmptyPasswords no -- 设置是否允许用口令为空的帐号登陆
AllowUsers admin -- AllowUsers的后面跟着任意的数量的用户名的匹配串(patterns)或user@host这样的匹配串,这些字符串之间用空格隔开,主机名可以是DNS名或ip地址。
#Subsystem /usr/local/sbin/sftpd -- 把前面的#号去掉并且把路径名设置成/usr/bin/sftpserv,则用户将能使用sftp(安全带ftp)了。
PubkeyAuthentication yes -- 允许使用公钥进行验证
生成密钥对
正如前面所介绍的,如果要实现ssh的通信,那么服务器端必须要有客户端的公钥,而客户端自己保留私钥,这样才能实现验证,因为它们是基于公钥算法进行加密的。因此,就必须要在客户端生成密钥对,然后自己保留私钥,把公钥分发到自己想访问的服务器端去。下面就来介绍客户端这个生成密钥对的过程。
用下面的命令可以生成密匙:ssh-keygen;如果远程主机使用的是SSH 2.x就要用这个命令:ssh-keygen –d。在同一台主机上同时有SSH1和SSH2的密匙是没有问题的,因为密匙是存成不同的文件的。
ssh-keygen/ssh-keygen -d命令运行之后会显示下面的信息:
Generating public/private dsa key pair.
Enter file in which to save the key (/home/mms/.ssh/id_dsa):
#按回车保存为: /home/mms/.ssh/id_dsa,即当前用户mms的私钥
Enter passphrase (empty for no passphrase):
# 按回车,表示读取密钥时不需要密钥的密码
Enter same passphrase again:
# 确认密钥的密码,必须和上面的输入相同
Your identification has been saved in /home/mms/.ssh/id_dsa.
# 私钥保存信息
Your public key has been saved in /home/mms/.ssh/id_dsa.pub.
# 公钥保存信息
The key fingerprint is:
ec:41:e8:08:38:0b:f8:1e:bc:92:98:32:fc:d7:69:7d mms@mms1.lxhd.com
# 密钥指纹
现在你有一对密匙了,公用密匙要分发到所有你想用ssh登录的远程主机上去;私人密匙要好好地保管防止别人知道你的私人密匙。用“ls –l ~/.ssh/identity”或“ls –l ~/.ssh/id_dsa”所显示的文件的访问权限必须是“-rw-------”。如果你怀疑自己的密匙已经被别人知道了,不要迟疑马上生成一对新的密匙。当然,你还要重新分发一次公用密匙。
分发公钥
具体步骤如下所示:
1. copy公钥到所要登录的远程服务器的指定用户的家目录(你在要访问的服务器是所使用的登录用户的家目录)下,例如:
scp id_dsa.pub oracle@csdba:/home/oracle/.ssh/pub.ilonng
这里Oracle为sftp使用的登录用户,若目录/home/[user]/.ssh/不存在,请先创建之。