java 建立ssh隧道_SSH基础
SSH
基本概念
SSH 為 Secure Shell 的縮寫,由 IETF 的網絡小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協議。SSH 是較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。SSH最初是UNIX系統上的一個程序,后來又迅速擴展到其他操作平臺。SSH在正確使用時可彌補網絡中的漏洞。SSH客戶端適用于多種平臺。幾乎所有UNIX平臺—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平臺,都可運行SSH。
功能
安全驗證方法
協議
- 傳輸層協議 [SSH-TRANS] 提供了服務器認證,保密性及完整性。此外它有時還提供壓縮功能。 SSH-TRANS 通常運行在TCP/IP連接上,也可能用于其它可靠數據流上。 SSH-TRANS 提供了強力的加密技術、密碼主機認證及完整性保護。該協議中的認證基于主機,并且該協議不執行用戶認證。更高層的用戶認證協議可以設計為在此協議之上。
- 用戶認證協議 [SSH-USERAUTH] 用于向服務器提供客戶端用戶鑒別功能。它運行在傳輸層協議 SSH-TRANS 上面。當SSH-USERAUTH 開始后,它從低層協議那里接收會話標識符(從第一次密鑰交換中的交換哈希H )。會話標識符唯一標識此會話并且適用于標記以證明私鑰的所有權。 SSH-USERAUTH 也需要知道低層協議是否提供保密性保護。
- 連接協議 [SSH-CONNECT] 將多個加密隧道分成邏輯通道。它運行在用戶認證協議上。它提供了交互式登錄話路、遠程命令執行、轉發 TCP/IP 連接和轉發 X11 連接。
傳輸方法
SSH是由客戶端和服務端的軟件組成的,有兩個不兼容的版本分別是:1.x和2.x。 用SSH 2.x的客戶程序是不能連接到SSH 1.x的服務程序上去的。OpenSSH 2.x同時支持SSH 1.x和2.x。 服務端是一個守護進程(daemon),他在后臺運行并響應來自客戶端的連接請求。服務端一般是sshd進程,提供了對遠程連接的處理,一般包括公共密鑰認證、密鑰交換、對稱密鑰加密和非安全連接。 客戶端包含ssh程序以及像scp(遠程拷貝)、slogin(遠程登陸)、sftp(安全文件傳輸)等其他的應用程序。 他們的工作機制大致是本地的客戶端發送一個連接請求到遠程的服務端,服務端檢查申請的包和IP地址再發送密鑰給SSH的客戶端,本地再將密鑰發回給服務端,自此連接建立。SSH 1.x和SSH 2.x在連接協議上有一些差異。 一旦建立一個安全傳輸層連接,客戶機就發送一個服務請求。當用戶認證完成之后,會發送第二個服務請求。這樣就允許新定義的協議可以與上述協議共存。連接協議提供了用途廣泛的各種通道,有標準的方法用于建立安全交互式會話外殼和轉發(“隧道技術”)專有 TCP/IP 端口和 X11 連接。
傳輸過程
遠程主機收到用戶的登錄請求,把自己的公鑰發給用戶-->用戶使用這個公鑰,將登錄密碼加密后,發送回來-->遠程主機用自己的私鑰,解密登錄密碼,如果密碼正確,就同意用戶登錄。
參考:百度百科
使用方法
ssh遠程登錄
# 遠程登錄 默認端口22 ssh username@ip_host# 遠程登錄 指定端口 ssh -p 端口 username@ip_hostssh登出
logoutssh遠程上傳文件
ssh
scp
# 上傳文件 scp 本地端文件path username@ip_host:服務器端文件路徑# 上傳文件夾 scp -r 本地端文件夾path username@ip_host:服務器端文件文件夾ssh遠程下載文件
ssh
scp
# 拉取文件 scp username@ip_host:服務器端文件路徑 本地端文件path# 拉取文件夾 scp username@ip_host:服務器端文件夾路徑 本地端文件夾path使用ssh在遠程后臺不中斷地跑程序
nohup python test.py擴展
解包:tar xvf FileName.tar.xz 打包:tar cvf FileName.tar DirName若你對人工智能(CV/NLP)、C++/python編程、互聯網就業及發展有興趣,歡迎點贊關注和收藏。謝謝鼓勵!!!
Anxjing.AI:SSH實現原理?zhuanlan.zhihu.com總結
以上是生活随笔為你收集整理的java 建立ssh隧道_SSH基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10款好用的程序员软件推荐
- 下一篇: MySQL配置文件详解