導航:首頁 > 編程系統 > linux空口令賬戶

linux空口令賬戶

發布時間:2025-03-06 06:42:47

❶ 如何建立linux ssh信任的方法與常見問題

在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_keys

OK,現在試試在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或者dsa

RSA 取名自演算法的三位提出者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」定義伺服器密匙的位數。

LoginGraceTime 600

「LoginGraceTime」設置如果用戶不能成功登錄,在切斷連接之前伺服器需要等待的時間(以秒為單位)。

KeyRegenerationInterval 3600

「KeyRegenerationInterval」設置在多少秒之後自動重新生成伺服器的密匙(如果使用密匙)。重新生成密匙是為了防止用盜用的密匙解密被截獲的信息。

PermitRootLogin no

「PermitRootLogin」設置root能不能用ssh登錄。這個選項一定不要設成「yes」。

IgnoreRhosts yes

「IgnoreRhosts」設置驗證的時候是否使用「rhosts」和「shosts」文件。

IgnoreUserKnownHosts yes

「IgnoreUserKnownHosts」設置ssh daemon是否在進行RhostsRSAAuthentication安全驗證的時候忽略用戶的「$HOME/.ssh/known_hosts」

StrictModes yes

「StrictModes」設置ssh在接收登錄請求之前是否檢查用戶家目錄和rhosts文件的許可權和所有權。這通常是必要的,因為新手經常會把自己的目錄和文件設成任何人都有寫許可權。

X11Forwarding no

「X11Forwarding」設置是否允許X11轉發。

PrintMotd yes

「PrintMotd」設置sshd是否在用戶登錄的時候顯示「/etc/motd」中的信息。

SyslogFacility AUTH

「SyslogFacility」設置在記錄來自sshd的消息的時候,是否給出「facility code」。

LogLevel INFO

「LogLevel」設置記錄sshd日誌消息的層次。INFO是一個好的選擇。查看sshd的man幫助頁,已獲取更多的信息。

RhostsAuthentication no

「RhostsAuthentication」設置只用rhosts或「/etc/hosts.equiv」進行安全驗證是否已經足夠了。

RhostsRSAAuthentication no

「RhostsRSA」設置是否允許用rhosts或「/etc/hosts.equiv」加上RSA進行安全驗證。

RSAAuthentication yes

「RSAAuthentication」設置是否允許只有RSA安全驗證。

PasswordAuthentication yes

「PasswordAuthentication」設置是否允許口令驗證。

PermitEmptyPasswords no

「PermitEmptyPasswords」設置是否允許用口令為空的帳號登錄。

AllowUsers admin

「AllowUsers」的後面可以跟著任意的數量的用戶名的匹配串(patterns)或user@host這樣的匹配串,這些字元串用空格隔開。主機名可以是DNS名或IP地址。

❷ linux操作系統怎麼安裝

一、安裝前的准備
Linux安裝光碟支持由光碟機啟動安裝,用戶只要對BIOS進行相應設置,就可以由光碟直接啟動進入Linux的安裝界面。在正式安裝Linux操作系統之前,用戶應注意以下兩個方面的問題:
1.硬碟空間
Linux需要在硬碟上建立自己的磁碟分區,如果用戶不希望對現有系統下的硬碟進行重新分區,建議使用一些第三方工具軟體,如Partition Magic等,對硬碟上已經存在的分區進行壓縮,從而為安裝Linux騰出足夠空間。用戶需要為Linux預留大約500兆硬碟空間,既可以位於已經存在的擴展分區,也可以是沒有被劃分分區的硬碟空間。Red Hat Linux 6.0可以在安裝過程中自己創建分區,所以用戶所要做的只是為Linux操作系統預留足夠的硬碟空間即可。
2.記錄用戶機器硬體配置信息
雖然Linux的安裝過程已經被盡可能的簡化,但是Linux仍然有可能不能自動檢測到用戶系統中的所有硬體配置。用戶在安裝過程中可能要回答某些硬體的設置問題,為了保證安裝的系統可用,好用,建議用戶在安裝之前記錄下系統的硬體配置信息。一個最簡單的方法是在Windows下用滑鼠右擊「我的電腦」,選中「屬性」,在出現的對話框中點擊「設備管理」。其中包含了用戶需要知道的所有信息,用戶尤其應當注意顯示器、顯卡和音效卡的配置情況。
二、開始安裝
注意,在啟動Linux的安裝過程之後,沒有類似Windows系統安裝中「退出安裝」的功能選項。如果用戶在安裝過程中碰到無法解決的問題而不能繼續進行安裝時,可以同時按下「Ctrl+Alt+Delete」鍵退出安裝過程,等到找到問題的解決方法之後重新進行安裝。
Red Hat Linux的安裝過程採用圖形界面,由鍵盤進行控制。其中「Tab」鍵用於在不同的選項之間移動,空格鍵用於選定或取消對某一項的選擇,「Enter」鍵用於按動屏幕中高亮度突出顯示的按鈕。在屏幕的底部顯示可能會用到的鍵盤命令。
1.啟動安裝過程
安裝過程一開始,首先出現歡迎對話框,用戶按「Enter」鍵繼續。Red Hat先會詢問用戶使用何種語言、用戶使用的鍵盤類型(默認選項為美式鍵盤」)以及安裝軟體的位置(選擇「本地CD-ROM)。在隨後的升級或安裝系統的詢問中選擇「安裝」,使用何種安裝類型選擇「自定義安裝」。
Red Hat在用戶對上述問題作出答復之後,檢測用戶系統中是否存在SCSI 設備。如果Linux自己沒有找到任何的SCSI 設備,就會詢問用戶是否使用了SCSI 設備。大多數用戶可以回答「否」,如果用戶確實使用了SCSI 設備,就要在列出的SCSI 設備驅動中進行選擇,並提供一些基本的配置參數以便使Linux系統能夠正常使用該設備。
2.使用Disk Druid建立Linux文件系統
在第1個過程結束之後,Red Hat將會提示用戶建立Linux文件系統。在被詢問使用何種工具時,選擇Disk Druid。(見^22020305a^1)
現在用戶需要在預留的硬碟空間中創建兩個分區。第一個分區作為Linux的根(root)分區,用於安裝Linux文件。第二個分區作為交換分區,用於補充用戶的物理內存。該分區相當於Windows 系統中的交換文件,但是Linux需要建立一個獨立的交換分區。在硬碟預留空間添加分區的方法如下:
按「F1」鍵添加分區,輸入「/」作為安裝點(mount point),選擇Linux Native(Linux本地分區)作為分區類型,然後在設定完分區大小之後按「OK」完成分區添加過程。
用戶可以按照同樣的步驟添加一個交換分區。注意「安裝點」一項空出,選擇「Linux Swap」作為分區類型,交換分區的大小不能低於用戶物理內存的實際大小。例如,如果用戶內存為36MB,交換分區的大小至少應當為36MB。
Disk Druid將會顯示出用戶添加的兩個分區的信息:一個較大的根分區和一個較小的交換分區。用戶選擇「OK」,當Red Hat詢問用戶是否將所做的改動保存到分區表時回答「是」。這樣就完成了整個分區的添加過程。
在添加完分區之後,用戶需要對新分區進行格式化。Red Hat首先格式化交換分區,然後再格式化根分區。建議用戶在格式化過程中選擇「檢查損壞的區塊」選項。
3.安裝可選軟體包
用戶可能已經發現在Red Hat Linux光碟中,除了核心操作系統之外,還含有大量功能強大的實用軟體。如圖像處理功能可以與Photoshop媲美的Gimp,使用廣泛的Web伺服器Apache等。Linux的安裝程序規定了一組默認安裝的軟體,包括E-mail客戶端軟體、Telnet、 FTP 以及Web瀏覽器等。但是在默認情況下將不安裝列印機支持程序和DOS/Windows 連接程序。用戶可以根據自己的需要選擇安裝哪些軟體。(見^22020305b^2)
下面對Linux的X Window系統做一個簡單介紹。X Window系統為用戶提供了Linux系統下類似於Windows系統的圖形化用戶界面。但是與Windows不同,X Window支持多個介面,其中包括最著名的GNOME和KDE。X Window並不直接決定用戶的桌面環境,而是由X Window的一個部件窗口管理器進行控制。目前流行的窗口管理器有幾十種之多,其中一些採用類似Win 95/98 的用戶介面,而另外一些則模仿Mac系統的用戶介面。GNOME和KDE都屬於桌面環境,在窗口管理器之上提供一系列方便用戶使用Linux系統的工具和應用程序。
這里筆者對X Window系統進行介紹的目的是希望用戶理解。如果需要在Linux系統中使用圖形界面,就應當確保在系統的安裝過程中選擇安裝了所有必需的X Window軟體包,包括GNOME和KDE。GNOME 有可能已經被設定為默認安裝軟體,用戶只有通過手動選擇安裝KDE。
一旦用戶選擇了需要安裝的所有軟體包,點擊「OK」,然後Red Hat 就會告訴用戶將要創建安裝記錄,再次選擇「OK」之後,安裝程序開始將用戶選定的軟體復制到硬碟上。當復制過程中出現黑屏時,用戶大可不必緊張,因為這是安裝程序啟動了自帶的屏幕保護程序。用戶可以通過點擊任何一個鍵盤鍵回到安裝界面。
接下

閱讀全文

與linux空口令賬戶相關的資料

熱點內容
怎麼能看到電腦開機密碼 瀏覽:524
電腦怎麼查有多少文件夾 瀏覽:706
大數據對營銷有什麼好處 瀏覽:658
怎麼搜索視頻學習編程 瀏覽:347
ipad群文件下載在哪裡 瀏覽:546
三線表數據的百分號寫在哪裡 瀏覽:1000
445抓雞教程 瀏覽:673
nef文件用ps解碼 瀏覽:403
蘋果73dtouch鎖屏壁紙 瀏覽:193
蘋果數據線用的什麼ic 瀏覽:226
怎麼將表格中篩選的內容以文件形式發到微信 瀏覽:91
蘋果用什麼可傳應用程序 瀏覽:541
富士機編程報目怎麼整理 瀏覽:133
夢幻蘋果和安卓 瀏覽:337
好的程序流程圖 瀏覽:705
qq被盜無法更換密碼 瀏覽:854
怎麼製作微信支付賬單文件 瀏覽:744
ios下載文件夾在哪裡 瀏覽:142
推薦買面膜app 瀏覽:271
模擬人生升級遺跡 瀏覽:728

友情鏈接