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
基於口令的安全驗證git
準備兩臺Linux系統的虛擬機,一臺作ssh服務器,另外一臺作客戶機用來遠程登陸服務器,首先ssh服務是Linux系統默認安裝好的,咱們能夠直接進行配置文件的修改vim
[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進行登陸了bash
[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不能進行切換網絡
基於密匙的安全驗證dom
首先咱們要在配置文件中開啓密鑰驗證登陸ssh
[root@linux6-1 ~]# vim /etc/ssh/sshd_config #PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys //去掉前面的#註釋,表示開啓公鑰、私鑰驗證 [root@linux6-1 ~]# service sshd restart 中止 sshd: [肯定] 正在啓動 sshd: [肯定]
而後在客戶機上產生公鑰和私鑰
先在客戶機上建立一個zhangsan用戶的映射用戶zhaosiide
[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就能夠了