ssh 是什么?怎么用?有哪些誤區(qū)?
前言
相信有少許人包括我曾經(jīng)認(rèn)為 ssh 就是用來免密登錄的,其實不然,它可涉及到非常多的東西,像 sftp / scp / winscp / 等都離不開 ssh,下面我們開始進(jìn)入正文。
ssh 是什么
ssh 是一種遠(yuǎn)程加密傳輸協(xié)議,并不是所謂的免密登錄這一作用,那只是它的一小部分,你可以理解它跟 https 一樣,是一種加密協(xié)議,有助于提高安全性,這樣是不是更好理解了?
另外 ssh 在許多系統(tǒng)中都內(nèi)置了,如 window、linux、mac
ssh 有什么用
ssh 加強了遠(yuǎn)程應(yīng)用程序,它代替了傳統(tǒng)遠(yuǎn)程協(xié)議 ftp、pop 和 telnet,因為這些協(xié)議本質(zhì)上都是不安全的,它們都是明文傳輸數(shù)據(jù),極易遭到中間人竊取信息,而 ssh 協(xié)議則可以解決這些問題,它在遠(yuǎn)程傳輸時給這些數(shù)據(jù)做了一層加密防護(hù),使得攻擊者難以破解,這就是為什么后來出了 sftp / scp / winscp 等協(xié)議,它們都是基于 ssh 創(chuàng)建出來的,像sftp 就是傳統(tǒng)遠(yuǎn)程文件協(xié)議 ftp 的安全版。
ssh 怎么用
個人更喜歡叫它 遠(yuǎn)程工具 ,即通過 ssh 命令來登錄遠(yuǎn)程服務(wù)器,然后幫忙傳遞本地主機與服務(wù)器主機之間的數(shù)據(jù)并進(jìn)行加密。
一、口令登錄
命令如下
// 格式 ssh user@host // 案例 ssh root@111.222.333.333
輸入后以上命令后,ssh 就會提示讓你輸入遠(yuǎn)程服務(wù)器密碼,輸入正確密碼后就可以進(jìn)入遠(yuǎn)程服務(wù)器開始交互了,另外,由于口令登錄每次都需要輸入服務(wù)器密碼,所以基本都是采用第二種方式:公鑰登錄。
TIp: 口令登錄其實是解決了以前的‘中間人'攻擊問題,因為以前的 ssh 登錄是直接輸入密碼就可以進(jìn)入服務(wù)器的,但是由于中間人可以冒充服務(wù)器來與客戶機交互騙取密碼,然后拿這個密碼去跟真正的服務(wù)器做交互,這就是所謂的‘中間人攻擊',后來為了解決這個問題才出現(xiàn)了
口令登錄,它在第一次遠(yuǎn)程主機時會主動發(fā)送一個指紋,這個指紋是服務(wù)器那邊的,此時你可以找找看服務(wù)器的指紋跟這個指紋是否一致,如果一致就直接輸入 yes 即可,也就是說口令登錄給你了一個選擇權(quán),讓你自己辨別是不是真的服務(wù)器。
二、公鑰登錄
公鑰登錄的作用就是所謂的免密登錄,使用方式也很簡單,就是將公鑰放到服務(wù)器的 ~/.ssh/authorized_keys 文件里面,下次登錄時就省去密碼驗證直接進(jìn)入服務(wù)器了。
1、有公鑰就必須得有私鑰,是一對來著,也叫做秘鑰,默認(rèn)會放在 .ssh/ 目錄里面,生成秘鑰命令如下
ssh-keygen -t rsa -C "你的郵箱"
生成過程會讓你提示讓你輸入一個密碼,此密碼可以防止當(dāng)你的秘鑰被別人竊取時多一層保護(hù),不需要此密碼的話可以一路回車
Enter passphrase (empty for no passphrase):
之后會在 ~/.ssh 自動生成兩個文件: id_rsa 私鑰 / id_rsa.pub 公鑰
2、將私鑰 id_rsa 交給 ssh-agent 管理
ssh-agent ~/.ssh/id_rsa
ssh-agent 作用:當(dāng)你的秘鑰設(shè)置了 passhrase 后,每次登陸就需要輸入這個密碼了,這樣會很麻煩,而
ssh-agent就是來解決這個問題的,如果這個命令提示報錯,可能你沒有啟動,可以在 git / linux 輸入如下命令啟動 ssh-agent
eval `ssh-agent`
3、將 id_rsa.pub 內(nèi)容上傳服務(wù)器~/.ssh/authorized_keys
上傳方式1:借助 ssh-copy-id 工具
ssh-copy-id -i id_rsa user@host
上傳方式2:手動命令上傳
$ cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
以上命令將 user@host 替換你的即可,現(xiàn)在再去登錄服務(wù)器就可以免密登錄了。
ssh 重新糾正
ssh 不是專門實現(xiàn)免密登錄,那只是它的冰山一角,ssh 更多的是用來遠(yuǎn)程操作。ssh 按照它提供的命令去與遠(yuǎn)程服務(wù)機進(jìn)行交互,在這交互期間它會幫你加密傳輸,這種就叫做遠(yuǎn)程加密傳輸協(xié)議,你可以理解為類似 https,只不過比 https 多了個命令交互操作
好了內(nèi)容就到這里,有問題的歡迎下方留言。
總結(jié)
到此這篇關(guān)于ssh 是什么?怎么用?有哪些誤區(qū)?的文章就介紹到這了,更多相關(guān)ssh誤區(qū)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS6.5下Tomcat7 Nginx Redis配置步驟教程詳解
這篇文章主要介紹了CentOS6.5下Tomcat7 Nginx Redis配置步驟,本文給大家介紹的非常詳細(xì),具有參考借鑒價值,需要的朋友可以參考下2016-10-10
Centos7.4服務(wù)器安裝apache及安裝過程出現(xiàn)的問題解決方法
這篇文章主要介紹了Centos7.4服務(wù)器安裝apache及安裝過程出現(xiàn)的問題解決方法,結(jié)合實例形式分析了Centos7.4服務(wù)器安裝apache相關(guān)命令、配置操作及端口占用等常見問題解決方法,需要的朋友可以參考下2019-03-03
CentOS 7.0編譯安裝lnmp教程(Nginx1.6.0+MySQL5.6.19+PHP5.5.14)
這篇文章主要介紹了CentOS 7.0編譯安裝lnmp教程(Nginx1.6.0+MySQL5.6.19+PHP5.5.14),需要的朋友可以參考下2016-10-10
centos 7中設(shè)置tomcat 7為系統(tǒng)服務(wù)的方法詳解
這篇文章主要給大家介紹了關(guān)于在centos 7中設(shè)置tomcat 7為系統(tǒng)服務(wù)的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。2017-06-06
使用stress命令進(jìn)行Linux CPU壓力測試的實現(xiàn)方法
在Linux系統(tǒng)中,有許多工具可以用來進(jìn)行CPU壓力測試,其中一個非常常用的工具就是stress命令,stress命令是一個簡單而強大的壓力測試工具,可以模擬系統(tǒng)在高負(fù)載情況下的運行狀態(tài),幫助我們評估系統(tǒng)的穩(wěn)定性和性能,在本文中,我們將探討如何使用stress命令進(jìn)行 CPU壓力測試2024-08-08
怎么禁用 Ubuntu 服務(wù)器中終端歡迎消息中的廣告
這篇文章主要介紹了怎么禁用 Ubuntu 服務(wù)器中終端歡迎消息中的廣告,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2018-11-11
Centos5.4+Nginx-0.8.50+UWSGI-0.9.6.2+Django-1.2.3搭建高性能WEB服務(wù)器
這篇文章主要介紹了Centos5.4+Nginx-0.8.50+UWSGI-0.9.6.2+Django-1.2.3搭建高性能WEB服務(wù)器的相關(guān)資料,需要的朋友可以參考下2016-02-02

