在 Linux 上查看和配置密碼時效的方法_Linux

來源:腳本之家  責任編輯:小易  

在Linux服務器之間建立信任關系,是很多線上服務系統的基礎性工作,這樣能便于程序在多臺服務器之間自動傳輸數據,或者方便用戶不輸入密碼就可以在不同的主機間完成登錄或者各種操作。網上關于建立Linux信任關系(ssh trust)的中文文章有一些,但是寫得都不太詳細,這里匯總了方方面面的資料,把多機信任關系建立方法說說清楚(文/陳運文)一 建立信任關系的基本操作基本場景是想從一臺Server服務器直接登錄另一臺,或者將Server服務器的數據不需密碼驗證直接拷貝至Client服務器,以下我們簡稱Server服務器為S(待發送的數據文件在這臺服務器上),Client服務為C,信任關系的最簡單操作方法如下:1 在S服務器上,進入當前用戶根目錄下的隱藏目錄.ssh,命令如下:cd~/.ssh(注:目錄名前的點好”.”表示該文件夾是一個特殊的隱藏文件夾,ls命令下默認是看不到的,通過 ls –a 命令觀察到)2 生成S服務器的私鑰和公鑰:ssh-keygen-t rsa(注:rsa是一種加密算法的名稱,此處也可以使用dsa,關于rsa和dsa算法的介紹可見本文后半章節)ssh-keygen生成密鑰用于信任關系生成此時會顯示Generating public/private key pair.并提示生成的公鑰私鑰文件的存放路徑和文件名,默認是放在/home/username/.ssh/id_rsa 這樣的文件里的,通常不用改,回車就可以然后Enter passphrase(empty for no passphrase):通常直接回車,默認不需要口令Enter same passphrase again:也直接回車然后會顯式密鑰fingerprint生成好的提示,并給出一個RSA加密協議的方框圖形。此時在.ssh目錄下ls,就可以看到生成好的私鑰文件id_rsa和公鑰文件id_rsa.pub了以下是各種補充說明:注1:如果此時提示 id_rsaalready exists,Overwrite(y/n)則說明之前已經有人建好了密鑰,此時選擇n 忽略本次操作就行,可以直接用之前生成好的文件;當然選y覆蓋一下也無妨注2:公鑰用于加密,它是向所有人公開的(pub是公開的單詞public的縮寫);私鑰用于解密,只有密文的接收者持有。3 在Server服務器上加載私鑰文件仍然在.ssh目錄下,執行命令:ssh-add id_rsa系統如果提示:Identity added:id_rsa(id_rsa)就表明加載成功了下面有幾個異常情況處理:–如果系統提示:could not open a connection to your authentication agent則需要執行一下命令:ssh-agent bash然后再執行上述的ssh-add id_rsa命令–如果系統提示id_rsa:No such file or directory這是系統無法找到私鑰文件id_rsa,需要看看當前路徑是不是不在.ssh目錄,或者私鑰文件改了名字,例如如果建立的時候改成 aa_rsa,則這邊命令中也需要相應改一下如果系統提示 command not found,那肯定是你命令敲錯字符了J提示Agent admitted failure to sign using the key,私鑰沒有加載成功,重試ssh-add注意id_rsa/id_rsa.pub文件不要刪除,存放在.ssh目錄下4 把公鑰拷貝至Client服務器上很簡單,例如 scp id_rsa.pub [email protected]:~5 ssh登錄到Client服務器上,然后在Client服務器上,把公鑰的內容追加到authorized_keys文件末尾(這個文件也在隱藏文件夾.ssh下,沒有的話可以建立,沒有關系)cat id_rsa.pub>>~/.ssh/authorized_keys以下是各種補充說明,遇到問題時可以參考:注1:這里不推薦用文件覆蓋的方式,有些教程直接scp id_rsa.pub 到Client服務器的authorized_keys文件,會導致之前建的其他信任關系的數據被破壞,追加到末尾是更穩妥的方式;注2:cat 完以后,Client服務器上剛才拷貝過來的id_rsa.pub文件就不需要了,可以刪除或移動到其它地方)注3:ssh-keygen 命令通過-b參數可以指定生成的密鑰文件的長度,如果不指定則默認為1024,如果ssh-keygen –b 4096(最長4096),則加密程度提高,但是生成和驗證時間會增加。對一般的應用來說,默認長度已經足夠勝任了。如果是rsa加密方式,那么最短長度為768 byte注4:authorized_keys文件的權限問題。如果按上述步驟建立關系后,仍然要驗證密碼,并且沒有其他報錯,那么需要檢查一下authorized_keys文件的權限,需要作下修改:chmod g-w authorized_keysOK,現在試試在Server端拷貝一個文件到Client服務器,應該無需交互直接就傳過去了。但是此時從Client傳數據到Server服務器,仍然是需要密碼驗證的。如果需要兩臺服務器間能直接互傳數據,則反過來按上述步驟操作一下就可以了二 刪除服務器間信任關系的方法如果想取消兩臺服務器之間的信任關系,直接刪除公鑰或私鑰是沒有用的,需要在Client服務器上,打開~/.ssh/authorized_keys 文件,找到對應的服務器的公鑰字段并刪除每個段落的開頭是ssh-rsa字樣,段尾是Server服務器的帳號和ip(如下圖紅框),需要細心的找一下后刪除整段密鑰文件內容和刪除Linux服務器間信任關系的方法三 各種可能遇到的情況和處理方法–提示 port 22:Connection refused可能的原因:沒有正確安裝最新的openssh-server,安裝方法如下sudo apt-get install openssh-server不支持apt安裝的,可以手工下載:wget ftp.ssh.com/pub/ssh/ssh-3.2.9.1.tar.gz–關于目錄和文件的權限設置ssh目錄的權限必須是700,同時本機的私鑰的權限必須設置成600:chmod 600 id_rsa否則ssh服務器會拒絕登錄四 關于RSA和DSA加密算法在ssh-keygen命令中,-t參數后指定的是加密算法,可以選擇rsa或者dsaRSA 取名自算法的三位提出者Ron Rivest,Adi Shamir,and Leonard Adleman的姓名首字母,作為一種非對稱加密算法,RSA的安全性基于及其困難的大整數分解(兩個素數的乘積的還原問題)。關于RSA算法原理的文章很多,感興趣的朋友可以找來讀一讀。DSA=Digital Signature Algorithm,基于有限域離散對數難題,是Schnorr和ElGamal簽名算法的變種,一般用于數字簽名和認證,被美國標準局(NIST)采納為數字簽名標準DSS(Digital Signature Standard),based on discrete logarithms computation.DES=Digital Encryption Standard.Obsolete standard.RSA算法好在網絡容易實現密鑰管理,便進行數字簽名,算法復雜,加/解速度慢,采用非對稱加密。在實際用于信任關系建立中,這兩種方法的差異很微小,可以挑選其一使用。五 關于SSH協議的介紹SSH全稱Secure SHell,顧名思義就是非常安全的shell的意思,SSH協議是IETF(Internet Engineering Task Force)的Network Working Group所制定的一種協議。SSH的主要目的是用來取代傳統的telnet和R系列命令(rlogin,rsh,rexec等)遠程登陸和遠程執行命令的工具,實現對遠程登陸和遠程執行命令加密。防止由于網絡監聽而出現的密碼泄漏,對系統構成威脅。ssh協議目前有SSH1和SSH2,SSH2協議兼容SSH1。目前實現SSH1和SSH2協議的主要軟件有OpenSSH和SSH Communications Security Corporation 公司的SSH Communications 軟件。前者是OpenBSD組織開發的一款免費的SSH軟件,后者是商業軟件,因此在linux、FreeBSD、OpenBSD、NetBSD等免費類UNIX系統種,通暢都使用OpenSSH作為SSH協議的實現軟件。因此,本文重點介紹一下OpenSSH的使用。需要注意的是OpenSSH和SSH Communications的登陸公鑰/私鑰的格式是不同的,如果想用SSH Communications產生的私鑰/公鑰對來登入到使用OpenSSH的linux系統需要對公鑰/私鑰進行格式轉換。第一次登陸后,ssh就會把登陸的ssh指紋存放在用戶home目錄的.ssh目錄的know_hosts文件中,如果遠程系統重裝過系統,ssh指紋已經改變,你需要把.ssh 目錄下的know_hosts中的相應指紋刪除,再登陸回答yes,方可登陸。請注意.ssh目錄是開頭是”.”的隱藏目錄,需要ls –a參數才能看到。而且這個目錄的權限必須是700,并且用戶的home目錄也不能給其他用戶寫權限,否則ssh服務器會拒絕登陸。如果發生不能登陸的問題,請察看服務器上的日志文件/var/log/secure。通常能很快找到不能登陸的原因。六 關于ssh_config和sshd_config文件配置的說明etc/ssh/ssh_config:Host*選項“Host”只對能夠匹配后面字串的計算機有效。“*”表示所有的計算機。ForwardAgent no“ForwardAgent”設置連接是否經過驗證代理(如果存在)轉發給遠程計算機。ForwardX11 no“ForwardX11”設置X11連接是否被自動重定向到安全的通道和顯示集(DISPLAY set)。RhostsAuthentication no“RhostsAuthentication”設置是否使用基于rhosts的安全驗證。RhostsRSAAuthentication no“RhostsRSAAuthentication”設置是否使用用RSA算法的基于rhosts的安全驗證。RSAAuthentication yes“RSAAuthentication”設置是否使用RSA算法進行安全驗證。PasswordAuthentication yes“PasswordAuthentication”設置是否使用口令驗證。FallBackToRsh no“FallBackToRsh”設置如果用ssh連接出現錯誤是否自動使用rsh。UseRsh no“UseRsh”設置是否在這臺計算機上使用“rlogin/rsh”。BatchMode no“BatchMode”如果設為“yes”,passphrase/password(交互式輸入口令)的提示將被禁止。當不能交互式輸入口令的時候,這個選項對腳本文件和批處理任務十分有用。CheckHostIP yes“CheckHostIP”設置ssh是否查看連接到服務器的主機的IP地址以防止DNS欺騙。建議設置為“yes”。StrictHostKeyChecking no“StrictHostKeyChecking”如果設置成“yes”,ssh就不會自動把計算機的密匙加入“$HOME/.ssh/known_hosts”文件,并且一旦計算機的密匙發生了變化,就拒絕連接。IdentityFile~/.ssh/identity“IdentityFile”設置從哪個文件讀取用戶的RSA安全驗證標識。Port 22“Port”設置連接到遠程主機的端口。Cipher blowfish“Cipher”設置加密用的密碼。EscapeChar~“EscapeChar”設置escape字符。etc/ssh/sshd_config:Port 22“Port”設置sshd監聽的端口號。ListenAddress 192.168.1.1“ListenAddress”設置sshd服務器綁定的IP地址。HostKey/etc/ssh/ssh_host_key“HostKey”設置包含計算機私人密匙的文件。ServerKeyBits 1024“ServerKeyBits”定義服務器密匙的位數。..www.13333515.buzz防采集請勿采集本網。

使用正確的設置,可以強制 Linux 用戶定期更改密碼。以下是查看密碼時效以及如何更改其中設置的方法。

準備兩臺以上的Linux服務器,我這里用.1 執行:ssh-keygen-t rsa這時.ssh目錄.2 將所有服務器上的公鑰合并到一個文件au.3 查看authorized_keys里面有多個server.

可以將 Linux 系統上的用戶密碼配置為永久或設置過期時間,以讓人們必須定期重置它們。出于安全原因,通常認為定期更改密碼是一種好習慣,但默認并未配置。

/etc/passwd、/etc/shadow、二個配置文件用于系統帳號管理,都是文本文件,可用vim等文本編輯器打開。etc/passwd用于存放用戶帳號信息,/etc/shadow 用于存放每個用戶加密的密碼。etc/passwd文件

要查看和修改密碼時效,你需要熟悉幾個重要的命令:chage 命令及其 -l 選項,以及 passwd 命令及其 -S 選項。本文會介紹這些命令,還有其他一些 chage 命令選項來配置密碼時效。

如果配置了免秘鑰還是不能登錄,說明你的免秘鑰設置有問題 需要注意目錄和文件的權限

查看密碼時效設置

useradd 用戶名 passwd 用戶名 輸入密碼即可

確定某個特定帳戶是否已設置密碼時效的方法是使用如下 chage 命令。請注意,除了你自己的帳戶以外,其他任何帳戶都需要 root 權限。請注意下面的密碼到期日期。

方法/步驟 準備兩臺以上的Linux服務器,我這里用的是s204,s205兩臺機器,多臺同樣的 先使用ssh登錄試一下,如果沒有安裝則需要先安裝一下 ssh s205會提示你輸入密碼 執行:ssh-keygen-t rsa

$ sudo chage -l doryLast password change : Mar 15, 2020Password expires : Jun 13, 2020 <==Password inactive : neverAccount expires : neverMinimum number of days between password change : 10Maximum number of days between password change : 90Number of days of warning before password expires : 14

如果未應用密碼時效,那么帳戶信息將如下所示:

$ sudo chage -l nemoLast password change : Jan 14, 2019Password expires : never <==Password inactive : neverAccount expires : Mar 26, 2706989Minimum number of days between password change : 0Maximum number of days between password change : 99999Number of days of warning before password expires : 7

你也可以使用 passwd -S 命令查看某些信息,但是你需要知道輸出中的每個字段代表什么:

dory$ passwd -Sdory P 03/15/2020 10 90 14 -1

這里的七個字段代表: 1 – 用戶名 2 - 帳戶狀態(L = 鎖定,NP = 無密碼,P = 可用密碼) 3 – 上次密碼更改的日期 4 – 可更改最低時效(如果沒有這么多天,則不能更改密碼) 5 – 最長時效(這些天后,密碼必須更改) 6 – 密碼過期前提前警告的天數 7 – 密碼過期后鎖定之前的天數(設為無效)

需要注意的一件事是,chage 命令不會顯示帳戶是否被鎖定;它僅顯示密碼時效設置。另一方面,passwd -S 命令將告訴你密碼被鎖定的時間。在此例中,請注意帳戶狀態為 L:

$ sudo passwd -S dorothydorothy L 07/09/2019 0 99999 7 10

通過將 /etc/shadow 文件中通常包含密碼的“哈希”字段變為 !,從而達成鎖定的效果。

$ sudo grep dorothy /etc/shadowdorothy:!:18086:0:99999:7:10:: <==

帳戶被鎖定的事實在 chage 輸出中并不明顯:

$ sudo chage -l dorothyLast password change : Jul 09, 2019Password expires : neverPassword inactive : neverAccount expires : neverMinimum number of days between password change : 0Maximum number of days between password change : 99999Number of days of warning before password expires : 7

密碼時效的一些選項

最常用的設置是最短和最長的天數。它們經常結合使用。例如,你可以配置一個密碼,使其最長不能使用超過 90 天(最大),然后添加一個有效期為一周或 10 天(最小)的密碼。這樣可以確保用戶不會在需要更改密碼后馬上改回以前的密碼。

$ sudo chage -M 90 -m 10 shark$ sudo chage -l sharkLast password change : Mar 16, 2020Password expires : Jun 14, 2020Password inactive : neverAccount expires : neverMinimum number of days between password change : 10 <==Maximum number of days between password change : 90 <==Number of days of warning before password expires : 7

你還可以使用 -E 選項為帳戶設置特定的到期日期。

$ sudo chage -E 2020-11-11 tadpole$ sudo chage -l tadpoleLast password change : Oct 15, 2019Password expires : neverPassword inactive : neverAccount expires : Nov 11, 2020 <==Minimum number of days between password change : 0Maximum number of days between password change : 99999Number of days of warning before password expires : 7

密碼時效可能是一個重要的選擇,只要它不鼓勵用戶使用過于簡單的密碼或以不安全的方式寫下來即可。有關控制密碼字符(例如,大小寫字母、數字等的組合)的更多信息,請參考這篇關于密碼復雜度的文章。

總結

到此這篇關于在 Linux 上查看和配置密碼時效的文章就介紹到這了,更多相關linux 查看配置密碼時效內容請搜索真格學網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持真格學網!

linux下用戶可以被查看到,但是密碼都是加密的,無法被查看到的。1、查看所有用戶的方法:cat/etc/passwd 且能看到用戶和組的id、家目錄以及使用殼。2、查看當前登錄用戶:who3、所有用戶密碼都是加密的,無法被查看到,包括自己的用戶。只有知道原密碼才能更改密碼或者登錄內容來自www.13333515.buzz請勿采集。


  • 本文相關:
  • linux下ssh免密碼登錄配置詳解
  • linux下mysql 8.0.15 安裝配置圖文教程以及修改密碼
  • linux遠程登錄ssh免密碼配置方法
  • linux負載均衡總結性說明 四層負載和七層負載有什么區別
  • 使用 libevent 和 libev 提高網絡應用性能的方法
  • 使用 linux seq 命令生成數字序列(推薦)
  • centos7 下安裝telnet服務的實現方法
  • centos搭建gtk+codeblock完整版
  • linux下幾種并發服務器的實現模式(詳解)
  • centos 配置防火墻詳解及實例
  • linux上也有10個流行的windows應用程序
  • linux中利用vim對文件進行密碼保護的方法詳解
  • linux環境下python2.7.6升級python3.5.2
  • 在linux下如何查看用戶密碼?
  • 如何配置linux系統信任關系
  • 如何在linux中設置ftp用戶名和密碼
  • 如何在Linux服務器上配置SSH密鑰驗證
  • linux配置了ssh免密登錄怎么還需要輸入密碼
  • linux 系統配置文件里的用戶名和密碼怎么加密
  • linux配置了免密登錄還是不好用
  • 如何在Linux中添加一個新的用戶,并給用戶設置密碼
  • 如何在linux中如何配置ssh免密碼登錄
  • 當前用戶如何在Linux終端查看當前用戶密碼
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全星外虛擬主機華眾虛擬主機linuxwin服務器ftp服務器dns服務器tomcat nginxzabbix云和虛擬化服務器其它首頁服務器linuxlinux下ssh免密碼登錄配置詳解linux下mysql 8.0.15 安裝配置圖文教程以及修改密碼linux遠程登錄ssh免密碼配置方法linux負載均衡總結性說明 四層負載和七層負載有什么區別使用 libevent 和 libev 提高網絡應用性能的方法使用 linux seq 命令生成數字序列(推薦)centos7 下安裝telnet服務的實現方法centos搭建gtk+codeblock完整版linux下幾種并發服務器的實現模式(詳解)centos 配置防火墻詳解及實例linux上也有10個流行的windows應用程序linux中利用vim對文件進行密碼保護的方法詳解linux環境下python2.7.6升級python3.5.2apache開啟.htaccess及.htaccessservice temporarily unavailabllinux下實現免密碼登錄(超詳細)apache rewrite url重定向功能的linux下用cron定時執行任務的方法apache性能測試工具ab使用詳解centos 6.4安裝配置lamp服務器(acentos+nginx+php+mysql詳細配置apache you don""t have permissflume環境部署和配置詳解及案例大centos 6和centos 7下服務啟動方法及添加linux zip/unzip命令詳解linux查看當前登錄用戶并踢出用戶的命令centos 7中搭建nfs文件共享存儲服務的完整用dnspod和squid打造自己的cdn(二)linux 系統使用私鑰登錄的教程詳解在centos上搭建maven中央倉庫的方法centos 7 64位桌面版安裝圖文教程lamp架構系統服務搭建過程詳解ubuntu虛擬機下使用cutecom進行串口通信的
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.13333515.buzz All Rights Reserved
    3排列五开奖结果