如何在 Linux 上為特定的使用者或使用者組啟用或停用 SSH?
由於你的公司標準規定,你可能只能允許部分人訪問 Linux 系統。或者你可能只能夠允許幾個使用者組中的使用者訪問 Linux 系統。那麼如何實現這樣的要求呢?最好的方法是什麼呢?如何使用一個簡單的方法去實現呢?
是的,我們會有很多種方法去實現它。但是我們應該使用簡單輕鬆的方法。為了簡單輕鬆的完成目的,我們可以通過對 /etc/ssh/sshd_config
檔案做必要的修改來實現。在這篇文章中我們將會向你展示實現要求的詳細步驟。
為什麼我們要這樣做呢?是出於安全的原因。你可以訪問這個連結來獲取更多關於 openSSH 的使用方法。
什麼是 SSH ?
openssh 全稱為 OpenBSD Secure Shell。Secure Shell(ssh)是一個自由開源的網路工具,它能讓我們在一個不安全的網路中通過使用 Secure Shell(SSH)協議來安全訪問遠端主機。
它採用了客戶端-伺服器架構(C/S),擁有使用者身份認證、加密、在計算機和隧道之間傳輸檔案等功能。
我們也可以用 telnet
或 rcp
等傳統工具來完成,但是這些工具都不安全,因為它們在執行任何動作時都會使用明文來傳輸密碼。
如何在 Linux 中允許使用者使用 SSH?
通過以下內容,我們可以為指定的使用者或使用者列表啟用 ssh
訪問。如果你想要允許多個使用者,那麼你可以在新增使用者時在同一行中用空格來隔開他們。
為了達到目的只需要將下面的值追加到 /etc/ssh/sshd_config
檔案中去。 在這個例子中, 我們將會允許使用者 user3
使用 ssh。
# echo "AllowUsers user3" >> /etc/ssh/sshd_config
你可以執行下列命令再次檢查是否新增成功。
# cat /etc/ssh/sshd_config | grep -i allowusers
AllowUsers user3
這樣就行了, 現在只需要重啟 ssh
服務和見證奇蹟了。(下面這兩條命令效果相同, 請根據你的服務管理方式選擇一條執行即可)
# systemctl restart sshd
或
# service restart sshd
接下來很簡單,只需開啟一個新的終端或者會話嘗試用不同的使用者身份訪問 Linux 系統。是的,這裡 user2
使用者是不被允許使用 SSH 登入的並且會得到如下所示的錯誤資訊。
# ssh user2@192.168.1.4
user2@192.168.1.4's password:
Permission denied, please try again.
輸出:
Mar 29 02:00:35 CentOS7 sshd[4900]: User user2 from 192.168.1.6 not allowed because not listed in AllowUsers
Mar 29 02:00:35 CentOS7 sshd[4900]: input_userauth_request: invalid user user2 [preauth]
Mar 29 02:00:40 CentOS7 unix_chkpwd[4902]: password check failed for user (user2)
Mar 29 02:00:40 CentOS7 sshd[4900]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.6 user=user2
Mar 29 02:00:43 CentOS7 sshd[4900]: Failed password for invalid user user2 from 192.168.1.6 port 42568 ssh2
與此同時使用者 user3
被允許登入系統因為他在被允許的使用者列表中。
# ssh user3@192.168.1.4
user3@192.168.1.4's password:
[user3@CentOS7 ~]$
輸出:
Mar 29 02:01:13 CentOS7 sshd[4939]: Accepted password for user3 from 192.168.1.6 port 42590 ssh2
Mar 29 02:01:13 CentOS7 sshd[4939]: pam_unix(sshd:session): session opened for user user3 by (uid=0)
如何在 Linux 中阻止使用者使用 SSH ?
通過以下內容,我們可以配置指定的使用者或使用者列表禁用 ssh
。如果你想要禁用多個使用者,那麼你可以在新增使用者時在同一行中用空格來隔開他們。
為了達到目的只需要將以下值追加到 /etc/ssh/sshd_config
檔案中去。 在這個例子中, 我們將禁用使用者 user1
使用 ssh
。
# echo "DenyUsers user1" >> /etc/ssh/sshd_config
你可以執行下列命令再次檢查是否新增成功。
# cat /etc/ssh/sshd_config | grep -i denyusers
DenyUsers user1
這樣就行了, 現在只需要重啟 ssh
服務和見證奇蹟了。
# systemctl restart sshd
活
# service restart sshd
接下來很簡單,只需開啟一個新的終端或者會話,嘗試使用被禁用的使用者身份被訪問 Linux 系統。是的,這裡 user1
使用者在禁用名單中。所以,當你嘗試登入時,你將會得到如下所示的錯誤資訊。
# ssh user1@192.168.1.4
user1@192.168.1.4's password:
Permission denied, please try again.
輸出:
Mar 29 01:53:42 CentOS7 sshd[4753]: User user1 from 192.168.1.6 not allowed because listed in DenyUsers
Mar 29 01:53:42 CentOS7 sshd[4753]: input_userauth_request: invalid user user1 [preauth]
Mar 29 01:53:46 CentOS7 unix_chkpwd[4755]: password check failed for user (user1)
Mar 29 01:53:46 CentOS7 sshd[4753]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.6 user=user1
Mar 29 01:53:48 CentOS7 sshd[4753]: Failed password for invalid user user1 from 192.168.1.6 port 42522 ssh2
如何在 Linux 中允許使用者組使用 SSH?
通過以下內容,我們可以允許一個指定的組或多個組使用 ssh
。
如果你想要允許多個組使用 ssh
那麼你在新增使用者組時需要在同一行中使用空格來隔開他們。
為了達到目的只需將以下值追加到 /etc/ssh/sshd_config
檔案中去。在這個例子中,我們將允許 2g-admin
組使用 ssh。
# echo "AllowGroups 2g-admin" >> /etc/ssh/sshd_config
你可以執行下列命令再次檢查是否新增成功。
# cat /etc/ssh/sshd_config | grep -i allowgroups
AllowGroups 2g-admin
執行下列命令檢視屬於該使用者組的使用者有哪些。
# getent group 2g-admin
2g-admin:x:1005:user1,user2,user3
這樣就行了, 現在只需要重啟 ssh
服務和見證奇蹟了。
# systemctl restart sshd
或
# service restart sshd
是的, user1
被允許登入系統因為使用者 user1
屬於 2g-admin
組。
# ssh user1@192.168.1.4
user1@192.168.1.4's password:
[user1@CentOS7 ~]$
輸出:
Mar 29 02:10:21 CentOS7 sshd[5165]: Accepted password for user1 from 192.168.1.6 port 42640 ssh2
Mar 29 02:10:22 CentOS7 sshd[5165]: pam_unix(sshd:session): session opened for user user1 by (uid=0)
是的, user2
被允許登入系統因為使用者 user2
同樣屬於 2g-admin
組。
# ssh user2@192.168.1.4
user2@192.168.1.4's password:
[user2@CentOS7 ~]$
輸出:
Mar 29 02:10:38 CentOS7 sshd[5225]: Accepted password for user2 from 192.168.1.6 port 42642 ssh2
Mar 29 02:10:38 CentOS7 sshd[5225]: pam_unix(sshd:session): session opened for user user2 by (uid=0)
當你嘗試使用其他不在被允許的組中的使用者去登入系統時, 你將會得到如下所示的錯誤資訊。
# ssh ladmin@192.168.1.4
ladmin@192.168.1.4's password:
Permission denied, please try again.
輸出:
Mar 29 02:12:36 CentOS7 sshd[5306]: User ladmin from 192.168.1.6 not allowed because none of user's groups are listed in AllowGroups
Mar 29 02:12:36 CentOS7 sshd[5306]: input_userauth_request: invalid user ladmin [preauth]
Mar 29 02:12:56 CentOS7 unix_chkpwd[5310]: password check failed for user (ladmin)
Mar 29 02:12:56 CentOS7 sshd[5306]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.6 user=ladmin
Mar 29 02:12:58 CentOS7 sshd[5306]: Failed password for invalid user ladmin from 192.168.1.6 port 42674 ssh2
如何在 Linux 中阻止使用者組使用 SSH?
通過以下內容,我們可以禁用指定的組或多個組使用 ssh
。
如果你想要禁用多個使用者組使用 ssh
,那麼你需要在新增使用者組時在同一行中使用空格來隔開他們。
為了達到目的只需要將下面的值追加到 /etc/ssh/sshd_config
檔案中去。
# echo "DenyGroups 2g-admin" >> /etc/ssh/sshd_config
你可以執行下列命令再次檢查是否新增成功。
# # cat /etc/ssh/sshd_config | grep -i denygroups
DenyGroups 2g-admin
# getent group 2g-admin
2g-admin:x:1005:user1,user2,user3
這樣就行了, 現在只需要重啟 ssh
服務和見證奇蹟了。
# systemctl restart sshd
或
# service restart sshd
是的 user1
不被允許登入系統,因為他是 2g-admin
使用者組中的一員。他屬於被禁用 ssh
的組中。
# ssh user1@192.168.1.4
user1@192.168.1.4's password:
Permission denied, please try again.
輸出:
Mar 29 02:17:32 CentOS7 sshd[5400]: User user1 from 192.168.1.6 not allowed because a group is listed in DenyGroups
Mar 29 02:17:32 CentOS7 sshd[5400]: input_userauth_request: invalid user user1 [preauth]
Mar 29 02:17:38 CentOS7 unix_chkpwd[5402]: password check failed for user (user1)
Mar 29 02:17:38 CentOS7 sshd[5400]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.6 user=user1
Mar 29 02:17:41 CentOS7 sshd[5400]: Failed password for invalid user user1 from 192.168.1.6 port 42710 ssh2
除了 2g-admin
使用者組之外的使用者都可以使用 ssh 登入系統。 例如,ladmin
等使用者就允許登入系統。
# ssh ladmin@192.168.1.4
ladmin@192.168.1.4's password:
[ladmin@CentOS7 ~]$
輸出:
Mar 29 02:19:13 CentOS7 sshd[5432]: Accepted password for ladmin from 192.168.1.6 port 42716 ssh2
Mar 29 02:19:13 CentOS7 sshd[5432]: pam_unix(sshd:session): session opened for user ladmin by (uid=0)
via: https://www.2daygeek.com/allow-deny-enable-disable-ssh-access-user-group-in-linux/
作者:2daygeek 選題:lujun9972 譯者:way-ww 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- 如何在 Alpine Linux 上啟用或禁用防火牆?Linux防火牆
- linux限定使用者或組對磁碟空間的使用Linux
- 啟用或禁用普通使用者Exchange Online PowerShell功能
- 如何在 Linux 上安裝 MariaDB 或 MySQLLinuxMySql
- 在Linux中,如何新增一個使用者到特定的組?Linux
- 如何 SSH 登入到 Linux 上的特定目錄Linux
- 在 Linux 中更改、刪除或禁用使用者密碼Linux密碼
- 如何在mac電腦上建立使用者群組?Mac
- 【Linux】使用者和使用者組Linux
- Linux中如何啟用root使用者Linux
- linux13-使用者,使用者組Linux
- linux使用者使用者組與ACLLinux
- Linux 使用者和使用者組管理Linux
- 用jquery驗證使用者名稱是否有效或重複jQuery
- Confluence 6 啟用巢狀使用者組巢狀
- 在 Linux 上用 SELinux 或 AppArmor 實現強制訪LinuxAPP
- 掌握 Linux 使用者組Linux
- linux 使用者組操作Linux
- Linux中為SSH啟用雙因素身份驗證Linux
- 如何在 Linux 桌面新增使用者Linux
- Ubuntu Linux中如何啟用root使用者UbuntuLinux
- 如何在Linux上為SSH登入設定電子郵件提醒Linux
- 如何在 Kali Linux 上安裝 SSH 服務Linux
- 在Linux中如何登出其他 SSH 使用者Linux
- 如何在 Ubuntu Linux 中設定或更改時區UbuntuLinux
- (四)Linux之使用者管理(使用者和使用者組)Linux
- CIRP:80%的新購買Mac使用者已經是iPhone或iPad使用者MaciPhoneiPad
- 如何在M1或Intel Mac上重置NVRAMIntelMacVR
- TortoiseSVN如何更換或重置登入使用者
- Linux系統上的常用基礎命令,深入使用者與使用者組的相關命令!Linux
- linux新增使用者和組Linux
- 如何在 Linux 上安裝並啟用 Flatpak 支援?Linux
- 必須掌握的Linux使用者組Linux
- Linux下使用者和組的管理Linux
- Linux系統使用者組的管理Linux
- 教你如何在Linux 桌面新增使用者Linux
- Linux系統開啟或關閉SELinux。Linux
- Apple ID已被鎖定或停用解決辦法 Apple ID已被停用怎麼解除APP