openssh

openssh

1.基礎:

telnet:TCP/23端口,認證和數據的傳輸都是明文

SSH:Secure Shell tcp/22 安全shell  C/S模式

OpenSsh就是開源的ssh實現。

ssh版本:V1、V2但是V1中有缺陷,已經不怎麼使用了。

linux下:

Openssh

ssh命令可以實現ssh遠程登錄(相當於客戶端部分)。

 1.ssh -l username Remote_host

 2.ssh -l username Remote_host 'command'

 -X 和 -Y是兩個用圖形的參數,要求本地必須是圖形。

sshd是linux上ssh的服務。

windows下:

Putty,SecureCRT,sshsecureshellclient,Xmanager

2.SSH兩種安全驗證:

從客戶端來看,SSH提供兩種級別的安全驗證:

1.第一種級別是基於口令的安全驗證

只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密, 但是不能保證你正在連接的服務器就是你想連接的服務器。這個過程如下:

(1)遠程主機收到用戶的登錄請求,把自己的公鑰發給用戶。

(2)用戶使用這個公鑰,將登錄密碼加密後,發送回來。

(3)遠程主機用自己的私鑰,解密登錄密碼,如果密碼正確,就同意用戶登錄。這種方式可能會有別的服務器在冒充真正的服務器,將公鑰發送給客戶端,客戶端就會將密碼加密後發送給冒充的服務器,冒充的服務器就可以拿自己的私鑰獲取到密碼,也就是受到“中間人”這種方式的***。

值得一說的是當第一次鏈接遠程主機時,會提示您當前主機的“公鑰指紋”,詢問您是否繼續,如果選擇繼續後就可以輸入密碼進行登錄了,當遠程的主機接受以後,該臺服務器的公鑰就會保存到~/.ssh/known_hosts文件中。

  2. 第二種級別是基於密匙的安全驗證

需要依靠密匙,也就是你必須爲自己創建一對密匙,並把公用密匙放在需要訪問的服務器上。如果你要連接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求用你的密匙進行安全驗證。服務器收到請求之後,先在該服務器上你的主目錄下尋找你的公用密匙,

然後把它和你發送過來的公用密匙進行比較。如果兩個密匙一致,服務器就用公用密匙加密“質詢”並把它發送給客戶端軟件。客戶端軟件收到“質詢”之後就可以用你的私人密匙解密再把它發送給服務器。用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,

第二種級別不需要在網絡上傳送口令。第二種級別不僅加密所有傳送的數據,而且“中間人”這種***方式也是不可能的(因爲他沒有你的私人密匙)。但是整個登錄的過程可能需要10秒,但是相比輸入密碼的方式來說10秒也不長。


3.用不同的SSh客戶端實現密鑰登錄

在secureCRT下用密鑰登錄

SSH用RSA登陸:

開啓wheel組(在/etc/sudoers設置)

useradd -g wheel  test

passwd test

mkdir  -p /home/test/.ssh/

cd /home/test/.ssh/

用rz將公鑰上傳到/home/test/.ssh/目錄裏面

(如果創建公鑰的格式是:標準公鑰和VanDyke私鑰格式,需要用ssh-keygen -i -f轉換。如果是OpenSSH密鑰格式可直接修改文件名)

ssh-keygen -i -f /home/test/.ssh/Identity.pub > /home/test/.ssh/authorized_keys

chown -R test.wheel /home/test/.ssh/

chmod 700 /home/test/.ssh/

chmod 600 /home/test/.ssh/authorized_keys


在xshell用密鑰登陸:

開啓wheel組(在/etc/sudoers設置)

useradd -g wheel  test

passwd test

mkdir  -p /home/test/.ssh/

cd /home/test/.ssh/

用rz將公鑰上傳到/home/test/.ssh/目錄裏面

mv /home/test/.ssh/id_rsa_1024.pub > /home/test/.ssh/authorized_keys

chown -R test.wheel /home/test/.ssh/

chmod 700 /home/test/.ssh/

chmod 600 /home/test/.ssh/authorized_keys

4.兩臺linux主機之間如何基於密鑰ssh登錄。

1.生成密鑰對

ssh-keygen -t {rsa,dsa} 生成公鑰和密鑰

-f 可以指定目錄和文件名。

2.將公鑰傳到對方用戶的家目錄下的.ssh/authorized_keys

ssh-copy-id -i /path/to/public_Key username@host 這個可以直接將公鑰放到指定的地方。

也可以使用scp實現,例如:

scp id_rsa.pub 192.168.101.220:~/.ssh/authorized_keys  

scp 有兩個參數 -r 就是傳遞目錄的 -a等價 -rp

scp [option] src dest

 還有一個好用的命令就是sftp這個可以從支持ssh的服務器並且支持sftp的服務器上現在東西,所以

 沒有必要去管對方是否開啓了ftp服務,並且數據是加密的。

 5.保證ssh安全需要考慮的內容:

    1)密碼長度要長,密碼要經常改換

2)不要使用默認的端口22 

3)限制登錄客戶端的地址

4)禁止管理員賬戶直接登錄

5)僅允許指定用戶登錄

6)使用基於密鑰的認證方式登錄

7)禁止使用早起的V1版本的ssh。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章