經過密鑰 SSH 登陸設置

理解:

1. 一直以來都是經過密碼遠程 ssh 登陸到 linux服務器
2. 最近學習 Docker 老是看到你們都設置成密鑰方式登陸
3. 除了密碼被破解的風險以外,到底還有哪些好處?

4. 看到有個文章寫到:若是有員工離開,只須要刪除他的公鑰,這還有點兒用!
5. 可是密碼仍是要修改的吧!改密碼和刪除公鑰,哪一個更直接有效?

測試環境、測試目標

linux 客戶端(192.168.1.191): 環境: VisualBox虛擬機 ubuntu 18.04 Server
Mac 客戶端 (XXXXXXXXXXXXXX):
Windows 客戶端(192.168.1.174): 環境: VisualBox虛擬機 Win10

服務端(192.168.1.192): 環境: VisualBox虛擬機 ubuntu 18.04 Server

目的:使用密鑰方式ssh登陸到 192 服務器

方式說明:

1. 有些文章介紹的都是從服務端建立好私鑰、公鑰,而後下發給客戶端,也是能夠實現的
2. 我這裏將私鑰、公鑰的生成交給客戶端生成
3. 我認爲客戶端本身負責生成私鑰、公鑰,再將公鑰交給管理員上傳(或編輯),利於控制和管理

檢測、安裝 sshd

ps -ef |grep sshd
通常安裝過程最後會提示安裝那些組件,若是忘記了選擇 openssh-server
只好在這裏從新安裝一次

sudo apt-get install openssh-server

服務端 sshd 配置修改

1. 修改 sshd_config
sudo vim /etc/ssh/sshd_config 修改如下 4 處

# by wzh 20190114 yes--no
StrictModes no

# by wzh 20190114
PubkeyAuthentication yes

# by wzh 20190114
AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2

# by wzh 20190114 yes ---no ,can not use password to SSH
PasswordAuthentication  no
** 這一處最好等測試密鑰方式正確以後,再單獨修改!

2. 創建公鑰key 保存文件
sudo mkdir .ssh
cd .ssh
sudo touch authorized_keys
sudo vim authorized_keys 
加入 pubkey

3. 重啓 SSHD
sudo systemctl restart sshd

一、從 linux ssh 到 linux

1. 在 191 客戶端 上創建密鑰對
	ssh-keygen
	簡單起見,一路回車!passphrase 也是空着!

2. 確認公鑰私鑰文件是否生成
	ls
	authorized_keys  id_rsa  id_rsa.pub
	
3. 上傳 191 本身的公鑰到 192
	ssh-copy-id -i ~/.ssh/id_rsa.pub  dhbm@192.168.1.192
	或者直接在當前目錄
	ssh-copy-id -i id_rsa.pub  dhbm@192.168.1.192
	
	返回結果以下:
		/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
		The authenticity of host '192.168.1.192 (192.168.1.192)' can't be established.
		ECDSA key fingerprint is SHA256:7CHsZoFn6YJ7RInEerqfKmKc0dw/TGpRK0Tca8piTCI.
		Are you sure you want to continue connecting (yes/no)? 

4. 測試一下
	ssh dhbm@192.168.1.192
	由於以前是密碼方式,第一次可能還會要求輸入密碼
	Ok

5. 刪除測試
	在 192 服務器上 cd .ssh ,rm authorized_keys
	這是我本身測試,只有一個用戶,能夠簡單刪除 authorized_keys 文件
	若是多人操做,只能打開 authorized_keys 文件,刪除對應的記錄
	authorized_keys wen jian文件內容以下圖:

$ ll
	total 24
	drwx------  2 dhbm dhbm 4096 Jan 11 17:15 ./
	drwxr-xr-x 15 dhbm dhbm 4096 Jan 11 17:15 ../
	-rw-------  1 dhbm dhbm  401 Jan 11 17:15 authorized_keys
...
再次 測試 191 ssh 到 192
	ssh dhbm@192.168.1.192
	dhbm@192.168.1.192's password: 
** 回到了以前的密碼方式
** 等確認一段時間以後,再來去掉密碼方式登陸

6. 重複以上 ssh-copy-id 再來!此次就不要再刪除了!

二、從 Mac 客戶端到 192 服務器

1. 和以上 Linux 操做同樣的次序,在 Mac 上創建密鑰對
ssh-keygen 
返回結果:
	...
	Your identification has been saved in /Users/dhbm/.ssh/id_rsa.
	Your public key has been saved in /Users/dhbm/.ssh/id_rsa.pub.

1. 上傳 Mac 的公鑰到 192 服務器
	ssh-copy-id -i ~/.ssh/id_rsa.pub  dhbm@192.168.1.192

3. ssh 測試
	ssh dhbm@192.168.1.192

三、從 Mac 到 192 上的 Docker (非 22 端口)

1. 按照網上搜索到的方法(直接 cd .ssh 目錄下操做)
ssh-copy-id -i id_rsa.pub  "-p 10033 root@192.168.1.192"
返回錯誤:
	/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname
	-f: force mode -- copy keys without trying to check if they are already installed
	-n: dry run    -- no keys are actually copied
	-h|-?: print this help

2. 去掉引號
ssh-copy-id -i ~/.ssh/id_rsa.pub  -p 10033 root@192.168.1.192
ok!

四、從 Windows putty 到 192 服務器

1. 下載 putty 和 putty gen
	下載地址不少,我是從 CSDN 下載的
	https://download.csdn.net/download/baolang00/10529977

2. 首先打開 putty gen生成 公鑰私鑰
	** 生成的時候很是慢,頭幾回不知道技巧的時候,每次都等待了將近 40 分鐘!
	** 技巧: 看到進度條,沒事就在下面的空白處點鼠標!點鼠標!!點鼠標!

3. 保存私鑰、key 和 公鑰
	1)、保存私鑰 : 必須
	2)、複製保存key:必須
	3)、保存: 非必須

4. 將以上 key 內容發送給管理員,上傳(直接編輯粘貼)到服務器
	** 客戶端保存以後文件夾內容以下

** 服務端加上公鑰以後以下

5. 開始 putty SSH 鏈接
	1)、設置登陸帳號

2)、加載本身的私鑰

3)、保存本次會話(Session)

** 能夠在測試成功以後,從新操做一次的時候保存
** 後續操做就能夠直接加載(load)

4)、成功的話,就以下圖,直接進入了服務器

5. 錯誤處理:老是看到 server refused our key

修改 192 服務端 sshd 配置(vim /etc/ssh/sshd_config)
	** 以前都是 linux 之間操做,因此,都是嚴格模式 (StrictModes )
	
	1)、#StrictModes yes 去掉註釋,改爲 StrictModes no
	2)、#PubkeyAuthentication yes 去掉註釋,改爲 PubkeyAuthentication yes
	3)、#AuthorizedKeysFile .ssh/authorized_keys 改爲 AuthorizedKeysFile .ssh/authorized_keys
	4)、保存退出,重啓 sshd
相關文章
相關標籤/搜索