1. 程式人生 > >Linux九陰真經之九陰白骨爪殘卷2(SSH)

Linux九陰真經之九陰白骨爪殘卷2(SSH)

成功 格式 tro pad bubuko win keygen agent strong

SSH

ssh:安全的遠程登錄

兩種方式的用戶登錄認證

基於passwork

基於key

客戶端

常見的客戶端工具有:Windows版的putty、securecrt、xshell;linux中有ssh、sftp、scp、slogin等

配置文件: /etc/ssh/ssh_config

ssh命令

用法:ssh username@host CMD

選項:

-p port : 遠程服務器監聽端口

-b : 指定連接的源IP

-v : 調試模式

-C : 壓縮方式

-X : 支持x11轉發

-Y :支持信任x11轉發

-t :強制偽tty分配 例: ssh -t remoteserver1 ssh remoteserver2

ssh 客戶端

當客戶端第一次連接服務器時,服務器會發送自己的公鑰給客戶端,並保存在客戶端的~./ssh/know_hosts中。下次連接時不會再詢問。

SSH服務登錄驗證

基於密碼登錄驗證

技術分享圖片

由上圖我們總結出如下步驟

(1)客戶單向服務器發起SSH請求,服務器會把自己的公鑰發送給客戶端

(2)用戶根據服務器發送的公鑰,對密碼進行加密

(3)加密後的信息回傳給服務器,服務器用自己的私鑰解密,如果密碼正確,則用戶登錄成功

基於秘鑰的登錄方式驗證

(1)首先在客戶端生成一對密鑰(ssh-keygen)

(2)並將客戶端的公鑰拷貝(ssh-copy-id) 到服務器

(3)當客戶端再一次發送連接請求,包括IP,用戶名

(4)服務器得到客戶端的請求後,會到authorized——keys中查找,如果有響應的IP和用戶, 就會隨機生成一個字符串,利如:acdf

(5)服務器將使用客戶端拷貝過來的公鑰對字符串進行加密,然後發送給客戶端

(6)得到服務器發來的消息後,客戶端會使用私鑰進行解密,然後將解密後的字符串發送給服務端

(7)服務器接受到客戶端發來的字符串後,跟之前的字符串進行對比,如果一致就允許免密碼登錄

技術分享圖片

基於key認證

基於密鑰的認證:

(1)在客戶端生成密鑰對

ssh-keygen -t rsa(指定加密方式) -p‘‘(指定空密碼) -f "~/.ssh/id_rsa"

(2)把公鑰文件傳輸至遠程服務器對應用戶的家目錄

ssh-copy-id -i ~/.ssh/id_rsa.pub root@IPADDR

(3)測試

(4)在SecureCRT或Xshell實現基於key驗證
在SecureCRT工具—>創建公鑰—>生成Identity.pub文件
轉化為openssh兼容格式(適合SecureCRT,Xshell不需要轉化格式),並復制到需登錄主機上相應文件authorized_keys中,註意權限必須為600,在需登錄的ssh主機上執行:
ssh-keygen -i -f Identity.pub >> .ssh/authorized_keys

(5)重設私鑰口令:
ssh-keygen –p (為私鑰加密)

(6)驗證代理(authentication agent)保密解密後的密鑰
這樣口令就只需要輸入一次
在GNOME中,代理被自動提供給root用戶
否則運行ssh-agent bash

(7)鑰匙通過命令添加給代理
ssh-add

例:配置基於密鑰的免密登錄

1、在客戶端A生成密鑰對,按3次回車鍵

[root@laobai ~/.ssh]#ssh-keygen

2、把公鑰傳給客戶端B對應的家目錄,並重命名為 authorized_keys

技術分享圖片

3、在客戶端Bde ~/.ssh 的目錄下檢查是否有authorized_keys 文件

技術分享圖片

4、在客戶端A測試連接客戶端B,發現無需輸入密碼,直接登錄

技術分享圖片

Linux九陰真經之九陰白骨爪殘卷2(SSH)