ssh密鑰配置

SSH 是 Secure Shell 的縮寫,稱爲安全外殼協議 ,SSH 爲建立在應用層和傳輸層基礎之上的安全協議。

SSH 端口:22
Linux中的守護進程:sshd
安裝的服務:OpenSSH
服務端主程序:/usr/sbin/sshd
客戶端主程序:/usr/bin/ssh
服務端配置文件:/etc/ssh/sshd_config
客戶端配置文件:/etc/ssh/ssh

linux中的SSH即可以作爲【客戶端】可以訪問其他服務器的【22】號端口。也可以作爲服務器爲其它訪問提供服務。

ssh_config客戶端配置:

Host * :對那臺計算機有效,* 所有計算機有效 
ForwardAgent no :設置連接是否經過驗證代理,(如果存在)轉發給遠程計算機
ForwardX11 no:設置X11連接是否被自動重定向到安全的通道和顯示集(SISPLAY Set)
RhostsAuthentication :設置是否使用基於rhosts的安全驗證。
RhostsRSAAuthentication on :設置是否使用RSA算法的基於rhosts的安全驗證。
RSAAuthentication yes :設置是否使用RSA算法進行安全驗證。
PasswordAnthentication yes :設置是否使用口令驗證。
FallBackToRsh no :設置如果用shh連接出現錯誤是否自動使用rsh。
UseRsh no:設置是否在這臺計算機上使用“rlogin/rsh”
BatchMode no:如果設爲yes,passphrase/password(交互式輸入口令)的提示將被禁止。
不能交互式輸入口令的時候,這個選項對腳本文件盒批處理任務十分有用。
CheckHostIP yes:設置ssh是否查看連接到服務器主機的IP地址以防止DNS欺騙。建議Yes
StrictHostKeyChecking no:如果設置爲yes,ssh就不會自動把計算機的密鑰加入“¥HOME/.ssh/known_hosts”文件,並且一旦計算機的密鑰發生了變化,就拒絕連接。
IdentityFile :設置從哪個文件讀取用戶的RSA安全驗證標識。
Port 22: 連接到遠程主機的端口號。
Cipher :設置加密用的密碼。
EscapeChar ~  :設置escape字符。

sshd_config服務端配置:

Port 22:設置sshd監聽的端口號。
ListenAddress 192.168.2.1 :設置sshd服務器綁定的IP地址。
HostKey /etc/ssh/ssh_host_key:設置包含計算機私人密鑰的文件。
ServerKeyBits 1024:定義服務器密鑰的位數。
LoginGraceTime 600:設置如果用戶不能成功登入,再斷開之前服務器需要等待的時間(秒)。
KeyRegenerationInterval 3600:設置在多少秒之後自動重新生成服務器的密鑰
PermitRootLogin no :設置root能不能用ssh登入。這個選項一定不要設成yes。
IgnoreRhosts yes:設置驗證的時候是否使用“rhosts”和“shosts”文件。
IgnoreuserKnownHosts yes :設置ssh daemon是否在進行RhostsRSAAAuthentication安全認證的時候忽略用戶的“¥HOME/.ssh/known_hosts”
StrictModes yes:設置ssh在接收登入請求之前是否檢查用戶家目錄和rhosts文件的權限和所有權,這通常是必要的,因爲新手經常會把自己的目錄和文件設成任何人都有寫的權限。
X11Forwarding no:設置是否允許X11轉發
PrintMotd yes:設置sshd是否在用戶登入的時候顯示“/etc/motd”中的信息。
SyslogFacility AUTH:設置在記錄來着sshd的消息的時候,是否給出“facility code”。
LogLevel INFO 設置記錄sshd日誌消息的層次。INFO是一個好的選擇,查看sshd的man幫助頁。
以獲得更多的信息。
RhostsAuthentication no :設置只用rhosts或/etc/hosts.equiv進行驗證是否已經足夠了。
RhostsRSAAuthentication no:設置是否rhosts或/etc/hosts.equiv加上RSA進行安全驗證。
RSAAuthentication yes :設置是否預先只有RSA安全驗證。
PasswordAuthentication yes:設置是否預先口令驗證。
PermitEmptyPasswords no:設置是否允許用口令爲空的賬號登入。
AllowUsers admin:後面可以跟着任意的數量的用戶名的匹配竄(patterns)或user@host這樣的匹配串,這些字符串用空格隔開。主機名可以是DNS名或IP地址。

安全的做法是:用鑰匙對登錄,並且將permitRootLogin改爲 no , passwordauthentication 改爲 no

SSH遠程管理命令
遠程登錄

#從本地主機通過SSH命令登錄到遠程服務器

#ssh 用戶名@IP

#ssh [email protected]


遠程上傳和下載

####下載 把遠程服務器 root目錄下的 test.txt文件下載到本地主機的當前目錄裏
#scp [email protected]:/root/test.txt ./ 

####上傳 把本地主機root目錄下的123目錄裏的文件上傳到 遠程服務器的root目錄下
#注意:如果要上傳【目錄】需要添加【 -r 】選項
#scp -r /root/123/ [email protected]/root 

密鑰對驗證登錄:過程圖

這裏寫圖片描述

這裏注意一點:客戶端上傳的公鑰放在服務器端誰的目錄下,就表示要以誰的賬號來認證登錄。
好處:1:不需要用密碼登錄
   2:訪問方便,用私鑰可以在哪裏都能登錄。
要注意:保護好自己私鑰的安全,不要被別人盜取了。

創建主要過程:

這裏寫圖片描述
步驟1
在本地linux主機上創建密鑰,(也可以用密鑰生成工具創建密鑰)。

[root@iZbp1az5g589195umzubrzZ ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:e0CJhYE8VIOZw+kQN5CSe+4yyapo699fcSY/NBOgq4U root@iZbp1az5g589195umzubrzZ
The key's randomart image is:
+---[RSA 2048]----+
| .oB+B+o..       |
|o o.@..+...      |
| o o o..o  .     |
|. . . ...   .    |
| o   E oSo *     |
|  .   o  oB o    |
|.o   .  ...o     |
|=o. .   ..  .    |
|O=o. ...         |
+----[SHA256]-----+

Enter file in which to save the key :直接回車
Enter passphrase :不需要 輸入密碼直接回車
Enter same passphrase again: 同樣不需要輸入密碼直接回車。

查看創建好的密鑰

[root@iZbp1az5g589195umzubrzZ ~]# cd .ssh
[root@iZbp1az5g589195umzubrzZ .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub
[root@iZbp1az5g589195umzubrzZ .ssh]# ls -lh
總用量 12K
-rw------- 1 root root  406 9月  27 18:16 authorized_keys    #授權公鑰
-rw------- 1 root root 1.7K 3月  16 14:21 id_rsa        #密鑰
-rw-r--r-- 1 root root  410 3月  16 14:21 id_rsa.pub    #公鑰

上傳公鑰到服務器端的 root家目錄,表示如果用這個密碼鏈接遠程服務器,則登錄到遠程服務器以後就是root身份。

➜  .ssh scp id_rsa.pub [email protected]:/home/root
Enter passphrase for key '/Users/cdz/.ssh/id_rsa':
id_rsa.pub                                                                                                                                                                        100%  412   264.4KB/s   00:00


在服務器端手工建立 .ssh目錄(如果.ssh目錄不存在)。
並通過追加的方式把 id_ras.pub 添加到 .ssh目錄下的authorized_keys。
並修改該文件的權限爲600除了root其它用戶不允許操作。

這裏寫圖片描述
步驟2
在遠程服務器端修改/etc/ssh/sshd_config文件,按一下設置:

這裏寫圖片描述
步驟3

這裏寫圖片描述
測試
本地linux服務器登錄測試

這裏寫圖片描述
window客戶端登錄
用遠程下載工具把 192.168.0.196中生成的私鑰,下載出來。
在window系統當中,連接192.168.0.198時,在 secureCRT的 tool中選擇 manage agent Keys
把下載的私鑰導入進去。然後點擊重新連接,就可以在window的客戶端使用祕鑰對登錄遠程服務器。

這裏寫圖片描述

 

 

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