linux ssh密钥认证
SSH是一个在应
用程序中提供安全通信的协议,通过SSH可以用安全的访问服务器,因为SSH基于
成熟的共钥加密体系,把所有的传输的数据进行加密,保证数据在传输时不被恶
意破坏,泄漏,篡改。SSH还是用了多种加密和认证方式,解决了传输中数据加密
和身份认证的问题,能有效的防止网络嗅探和ip欺骗等攻击。
OpenSSH
Linux下广泛使用免费的OpenSSH程序来实现SSH协议.Red Hat Enterprise
linux 4也同样使用OpenSSH.它同时支持SSH1和SSH2协议.
一、检查系统是否安装OpenSSH
[root@simple ~]# rpm -q openssh-server
openssh-server-3.9p1-8.RHEL4.15
二、SSH服务的配置
1、配置SSH服务的运行参数,是通过修改配置文件/etc/ssh/sshd_config实现的
。
2、因为SSH服务使用默认的配置已经能够很好的工作,如果仅仅提供SSH服务不需
要修改。这里只介绍一
些常用的选项。
#Port 22
定义了SSH服务监听的断口号,SSH服务默认使用的端口号是22
#Proctocol 2,1
定义了SSH服务器使用SSH协议的顺序。默认识先使用SSH2协议,如果不成功则使
用SSH1协议,为了安全起
见,可以设置只使用SSH2协议。
#ListenAddress 0.0.0.0
定义SSH服务器帮定的IP地址,默认绑定服务器所有可用的IP地址.
#PermitRootLogin yes
定义是否允许管理员登陆
#PermitEmptyPasswords no
定义是否允许空密码登陆.
#PasswordAuthentication no
定义是否使用口令认证方式,如果准备使用公钥认证可以设置为no
三、使用公钥认证
1、原理:首先由用户生成一对密钥,然后将公钥保存在SSH服务器用户的目录
下.ssh子目录中的authorized_key文件里(/root/.ssh/authorized_key).私钥保
存在本地计算机.当用户登陆时,服务器检查authorized_key文件的公钥是否与用
户的私钥对应,如果相符则允许登入,否则拒绝.由于私钥只有保存在用户的本地计
算机中,因此入侵者就算得到用户口令,也不能登陆到服务器.
2、启用公钥认证
修改配置文件/etc/ssh/sshd_config
将”PasswordAuthentication yes”修改为”PasswordAuthentication no”
3、生成密钥
A:192.168.1.159
[root@159 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory ‘/root/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
dd:61:6a:1e:df:37:14:61:0a:f1:9f:b3:37:5e:bb:1c root@159
[root@159 ~]# cd .ssh/
[root@159 .ssh]# ls
id_rsa id_rsa.pub
[root@159 .ssh]# scp id_rsa.pub [email protected]:/root/.ssh/authorized_keys
B:192.168.1.39
[root@39 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
66:7b:2f:d8:af:db:f0:37:aa:09:05:25:fc:4f:0b:4c root@39
[root@39 ~]# cd .ssh/
[root@39 .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
[root@39 .ssh]# scp id_rsa.pub [email protected]:/root/.ssh/authorized_keys
四:验证:
[root@39 .ssh]# ssh 192.168.1.159
Last login: Mon Jun 27 10:47:03 2011 from 192.168.1.39
[root@159 ~]#
[root@159 .ssh]# ssh 192.168.1.39
Last login: Fri Jun 10 08:05:47 2011 from 192.168.1.159
[root@39 ~]#