日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

构建SSH服务

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 构建SSH服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是SSH?
簡單說,SSH是一種網絡協議,用于計算機之間的加密登錄。如果一個用戶從本地計算機,使用SSH協議登錄另一臺遠程計算機,我們就可以認為,這種登錄是安全的,即使被中途截獲,密碼也不會泄露。最早的時候,互聯網通信都是明文通信,一旦被截獲,內容就暴露無疑。1995年,芬蘭學者Tatu Ylonen設計了SSH協議,將登錄信息全部加密,成為互聯網安全的一個基本解決方案,迅速在全世界獲得推廣,目前已經成為Linux系統的標準配置。
SSH只是一種協議,存在多種實現,既有商業實現,也有開源實現。本文針對的實現是OpenSSH,它是自由軟件,應用非常廣泛。這里只討論SSH在Linux Shell中的用法。如果要在Windows系統中使用SSH,會用到另一種軟件PuTTY,這需要另文介紹。

中間人攻擊
SSH之所以能夠保證安全,原因在于它采用了公鑰加密。
整個過程是這樣的:(1)遠程主機收到用戶的登錄請求,把自己的公鑰發給用戶。(2)用戶使用這個公鑰,將登錄密碼加密后,發送回來。(3)遠程主機用自己的私鑰,解密登錄密碼,如果密碼正確,就同意用戶登錄。
這個過程本身是安全的,但是實施的時候存在一個風險:如果有人截獲了登錄請求,然后冒充遠程主機,將偽造的公鑰發給用戶,那么用戶很難辨別真偽。因為不像https協議,SSH協議的公鑰是沒有證書中心(CA)公證的,也就是說,都是自己簽發的。
可以設想,如果攻擊者插在用戶與遠程主機之間(比如在公共的wifi區域),用偽造的公鑰,獲取用戶的登錄密碼。再用這個密碼登錄遠程主機,那么SSH的安全機制就蕩然無存了。這種風險就是著名的"中間人攻擊


構建SSH遠程管理
---------SSH服務器-------------Client---------
192.168.1.1 192.168.1.100
一、密碼驗證
root@localhost ~]# vi /etc/ssh/sshd_config 修改:
Port 22
Protocol 2
ListenAddress 192.168.1.1
UseDNS no
PermitRootLogin no
PermitEmptyPasswords no
LoginGraceTime 2m
MaxAuthTries 6
AllowUsers hehe xixi@192.168.1.100 客戶端驗證:
[root@localhost ~]# ssh 192.168.1.1
[root@localhost ~]# ssh hehe@192.168.1.1
[root@localhost ~]# ssh haha@192.168.1.1
[root@localhost ~]# ssh xixi@192.168.1.1
二、秘鑰對驗證
例如:
ssh-keygen -b 4096 -t dsa
客戶端:
[root@localhost ~]#ssh-keygen
[root@localhost ~]#ssh-copy-id -i /home/hehe/.ssh/id_rsa.pub root@192.168.1.1
注意:ssh-copy-id:把密鑰追加到遠程主機的 .ssh/authorized_key 上
[root@localhost ~]#ssh root@192.168.1.1
或者
[hehe@localhost .ssh]$ ssh-keygen
[hehe@localhost .ssh]$ scp id_rsa.pub root@192.168.1.1:/root/
注意:在上傳公鑰時,不要關閉密碼驗證,否則將無法上傳。
服務器端:
[root@localhost ~]# vim /etc/ssh/sshd_config
修改:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
[root@localhost ~]#cp /root/id_rsa.pub /root/.ssh/authorized_keys
增加其他用戶
[root@localhost ~]#cat id_rsa.pub >> .ssh/authorized_keys
[root@localhost ~]# service sshd restart
客戶端驗證:
[hehe@localhost .ssh]$ ssh root@192.168.1.1 結論:不使用密碼。而是使用秘鑰對驗證登錄。
思考:如果客戶端lisi用戶,把公鑰拷貝到了服務端han用戶下。將會怎么樣?
(lisi用戶ssh han@192.168.56.200時無需密碼)
結論希望哪個用戶免密碼就拷貝到哪個用戶。
-----------------------------------
遠程執行命令:ssh root@192.168.56.200 date
-----------------------------------
講解scp命令
1、本地--->>>---服務器(類似上傳)
文件:
[root@localhost ~]# scp 222.txt root@192.168.1.1:/root
目錄:
[root@localhost ~]# scp -r /root/hehe root@192.168.1.1:/root
2、服務器--->>>---本地(類似下載)
文件:
[root@localhost ~]# scp root@192.168.1.1:/root/222.txt ./
目錄:
[root@localhost ~]# scp -r root@192.168.1.1:/root/hehe ./


---------------------------------------------------------------------------------------
1. ssh命令用法
連接到遠程主機
# ssh root@192.168.1.120 // 默認連接到目標主機的tcp 22端口

連接到其他ssh端口
# ssh -p 10022 root@192.168.1.120

連接到遠程主機,并執行一條命令
# ssh root@192.168.1.120 ls -l

在ssh命令后面,直接加上在遠程主機上要執行的命令。

打開調試模式
# ssh -v root@192.168.1.120

-v參數追蹤調試建立的SSH連接,可以看到在哪個環節出了問題。

對所有數據請求壓縮
# ssh -C root@192.168.1.120

所有通過ssh發送或接收的數據將會被壓縮,并且仍然是加密的。

指定ssh源地址
如果你的ssh客戶端有多于兩個以上的IP地址,可以使用-b選項來指定一個IP地址。這個IP將會被用做建立連接的源地址。

# ssh -b 192.168.0.200 root@192.168.1.120

查看是否已經添加了對應主機的ssh密鑰
# ssh-keygen -F 192.168.1.120

刪除對應主機的ssh訪問密鑰
# ssh-keygen -R 192.168.1.120

也可以在主機的~/.ssh/known_hosts文件中手動刪除公鑰。

轉載于:https://www.cnblogs.com/luoyan01/p/9733656.html

總結

以上是生活随笔為你收集整理的构建SSH服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。