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 [email protected] //進行遠程登錄 [email protected]‘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 [email protected]
[zhaosi@rhel6-4 .ssh]$ ssh-copy-id -i id_rsa.pub [email protected] //這裏輸入的是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遠程控制服務