标签:ssh远程登录
ssh远程控制服务SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台-包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
基于口令的安全验证
准备两台Linux系统的虚拟机,一台做ssh服务器,另一台做客户机用来远程登录服务器,首先ssh服务是Linux系统默认安装好的,我们可以直接进行配置文件的修改
[root@linux6-1 ~]# vim /etc/ssh/sshd_config //ssh的配置文件
#Port 22 //ssh的端口号
#PermitRootLogin yes //默认允许root远程连接,但这里是注释掉的,所以我们要删掉#,把后面的yes 改为no
此时我们重启ssh服务,使用另一台Linux6-4来进行登录,但是这里我们要先创建一个用户用来登录,所以先创建用户,而且要允许这个用户远程登录
[root@linux6-1 ~]# vim /etc/ssh/sshd_config
AllowUsers zhangsan //在刚刚修改的permitrootlogin那一段的后面加入允许zhangsan登录
[root@linux6-1 ~]# useradd zhangsan
[root@linux6-1 ~]# echo "123123" | passwd --stdin zhangsan
更改用户 zhangsan 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
好了,用户创建好之后我们就可以使用另一台Linux6-4进行登录了
[root@rhel6-4 ~]# ssh zhangsan@192.168.100.4 //进行远程登录
zhangsan@192.168.100.4‘s password: //输入zhangsan用户的密码
[zhangsan@linux6-1 ~]$ //然后就可以看到使用zhangsan用户在Linux6-4上登录了Linux6-1的系统了
但是这里有一个问题了,如果我们知道root的密码,可以使用zhangsan用户直接切换到root用户,这样是不安全的
[zhangsan@linux6-1 ~]$ su - root
密码:
[root@linux6-1 ~]#
所以我们要进行配置文件的修改,启用pam认证,在创建一个lisi用户,把zhangsan用户添加到wheel组里,然后就会看到zhangsan可以切换到root,而lisi就不能切换到root用户了
[root@linux6-1 ~]# useradd lisi //创建lisi用户
[root@linux6-1 ~]# echo "123123" | passwd --stdin lisi
更改用户 lisi 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@linux6-1 ~]# gpasswd -a zhangsan wheel //把zhangsan用户添加到wheel组
Adding user zhangsan to group wheel
[root@linux6-1 ~]# vim /etc/pam.d/su //进入pam的配置文件启用pam认证
#auth required pam_wheel.so use_uid //将这条前面的#删除,表示启用pam认证
[root@linux6-1 ~]# service sshd restart //重新启动ssh服务
停止 sshd: [确定]
正在启动 sshd: [确定]
此时在客户机上使用zhangsan和lisi用户进行登录,会看到zhangsan可以切换到root,而lisi不能进行切换
基于密匙的安全验证
首先我们要在配置文件中开启密钥验证登录
[root@linux6-1 ~]# vim /etc/ssh/sshd_config
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys //去掉前面的#注释,表示开启公钥、私钥验证
[root@linux6-1 ~]# service sshd restart
停止 sshd: [确定]
正在启动 sshd: [确定]
然后在客户机上产生公钥和私钥
先在客户机上创建一个zhangsan用户的映射用户zhaosi
[root@rhel6-4 ~]# useradd zhaosi
[root@rhel6-4 ~]# echo "123123" | passwd --stdin zhaosi
更改用户 zhaosi 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@rhel6-4 zhaosi]# su - zhaosi //切换到zhaosi用户
[zhaosi@rhel6-4 ~]$
[zhaosi@rhel6-4 ~]$ ssh-keygen -t rsa //生成密钥
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zhaosi/.ssh/id_rsa):
Created directory ‘/home/zhaosi/.ssh‘.
Enter passphrase (empty for no passphrase): //输入密钥密码,如123456
Enter same passphrase again:
Your identification has been saved in /home/zhaosi/.ssh/id_rsa.
Your public key has been saved in /home/zhaosi/.ssh/id_rsa.pub.
The key fingerprint is:
07:2e:d3:12:ba:e8:d4:16:1e:82:87:1f:9d:9a:77:7c zhaosi@rhel6-4
The key‘s randomart image is:
+--[ RSA 2048]----+
| |
| |
| . . |
| o . o + . |
|o + * + S . |
| o O = + . |
| * * o E |
| o o . . |
| . |
+-----------------+
就会看到产生了这样一个2048的密钥
然后我们可以查看密钥产生在哪里
[zhaosi@rhel6-4 ~]$ cd /home/zhaosi
[zhaosi@rhel6-4 ~]$ ls -a
. .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla .ssh //密钥就在.ssh目录下
[zhaosi@rhel6-4 .ssh]$ ls
id_rsa id_rsa.pub
然后我们通过zhaosi用户将私钥发送给zhangsan用户
[zhaosi@rhel6-4 .ssh]$ ssh-copy-id -i id_rsa.pub zhangsan@192.168.100.4
[zhaosi@rhel6-4 .ssh]$ ssh-copy-id -i id_rsa.pub zhangsan@192.168.100.4 //这里输入的是zhangsan用户的密码
然后我们在切换到ssh服务器(也就是linux6-1)去查看收到的私钥文件
[root@linux6-1 ~]# cd /home/zhangsan/.ssh
[root@linux6-1 .ssh]# ls
authorized_keys
[root@linux6-1 .ssh]# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA4MH8kr9+D9uy8J+I8qldCrA6zFxzyRS1AnfOofHP0iDr6rS1nlKzMPIsQG1B3TWPhqbTEwtiiiS5omsCqoc4r79nOhwH8ys7bc+OPJIZtVai3PLepCD8w3LF5hjo8Q3j+WAiy5x2ZTooeVhTLYkmCJaz4/SsujwvbmsJeaxWphHu5Ka/6MNRH+zIzlF4MdRN6XSyI39ubbpOBqwRExXEIGnpw9OF31hFUBYMSoYz/aAHa3j+/CwOwgEXgtOVQNNksyjByvfQA2J5oMuJPSriMi9GDrN0mgw/7iPkXC9vmP5Hd/rniZvwz6UNHm+Quse4q9UIHwximCNPuIeuNl1VYQ== zhaosi@rhel6-4 //这里就是收到的私钥文件,在最后面可以看到是rhel6-4的zhaosi用户发送过来的
此时我们在用zhangsan用户在客户机上登录只用输入123456就可以了
标签:ssh远程登录
原文地址:http://blog.51cto.com/13659301/2118823