SSH是(security shell)的简称,是一种安全协议。通过ssh数据传输前会对该数据进行加密,然后再进行传输。
SSH有两种登陆验证方式:密码验证、秘钥对验证
密码验证:通过服务器的本地登陆用户的登录名和密码进行验证。从客户机的角度看服务器可以会被冒充,从服务器的角度看密码会被第三方穷举(暴力破解),因此通过这种发是会存在一定的安全隐患。
SSH秘钥对验证:通过客户机生成一对公钥和私钥。客户机首先会将自己的公钥传给服务器,服务器接受并保存秘钥,客户机之后变会通过私钥进行加密传给服务器、服务器通过公钥进行解密。
在linux中ssh是通过openssh-server提供服务的,客户端需要安装openssh-client软件包。这两个软件包在linux系统安装的时候就已经默认安装了
1.查看系统是否安装了该软件
[[email protected] ~]# rpm -qa openssh-server
openssh-server-5.3p1-84.1.el6.i686
[[email protected] ~]# rpm -qa openssh-clients
openssh-clients-5.3p1-84.1.el6.i686
如果没有安装可以通过系统光盘进行安装。
2.查看ssh的配置文件
[[email protected] ~]# vi /etc/ssh/ssh_config
# Port 22 //ssh的端口号,默认为22
# Protocol 2,1 //协议的类型,协议2比协议1的安全性更高
AuthorizedKeysFile .ssh/authorized_keys //如果配置文件中如果没有,可以添加。一般保持默
省略.........
3.通过客户端生成秘钥对,只对当前用户进行生成秘钥对。所以在生成秘钥对之前需要先切换到该用户。
[[email protected] ~]# useradd tom
[[email protected] ~]# echo "abc123" | passwd --stdin tom
更改用户 tom 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[[email protected] ~]# su - tom //通过su进行切换用户
[[email protected] ~]$ ssh-keygen -t rsa //生成用户秘钥
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tom/.ssh/id_rsa): //提示秘钥保存的位置
Created directory ‘/home/tom/.ssh‘.
Enter passphrase (empty for no passphrase): //数据调用的秘钥的短语
Enter same passphrase again: //确认该短语
Your identification has been saved in /home/tom/.ssh/id_rsa.
Your public key has been saved in /home/tom/.ssh/id_rsa.pub.
The key fingerprint is:
cd:01:93:69:83:2f:25:a8:2c:ee:6a:68:95:e5:86:54 [email protected]
The key‘s randomart image is:
+--[ RSA 2048]----+
| . .oo |
| .Eo *o |
| . .. = .. |
|. o. .. .o . |
|... = .S o |
| . + o |
|o . . |
|.+ |
|= |
+-----------------+
4.查看所生成的秘钥,并通过scp命令将公钥传给对端的服务器。
[[email protected] ~]$ ls -l /home/tom/.ssh/id_rsa*
-rw-------. 1 tom tom 1743 12月 23 18:10 /home/tom/.ssh/id_rsa
-rw-r--r--. 1 tom tom 394 12月 23 18:10 /home/tom/.ssh/id_rsa.pub
[[email protected] ~]$ scp -r /home/tom/.ssh/id_rsa.pub [email protected]:/tmp //通过将用户的通用传给服务器
[email protected]‘s password:
id_rsa.pub
5.在服务器上面将公钥导到认证文件中
[[email protected] ~]# mkdir /home/liu/.ssh //如果没有需要将创建该文件夹
[[email protected] ~]# cat /etc/ssh/sshd_config >> /home/liu/.ssh/authorized_keys //将公钥导入到服务器的认证文件中。
6.客户集通过ssh访问服务器
[[email protected] ~]$ ssh [email protected]
[email protected]‘s password: //输入的是调用短语,如果没有设置调用短语则可以直接进入
Last login: Wed Jul 2 18:52:08 2014 from 20.0.0.4
[[email protected] ~]$