命令ssh 安全隧道/端口轉發

有待整理

SSH協議

通過公鑰加密技術實現服務器身份驗證。

  • 安全的隧道
    SSH會自動加密和解密所有SSh客戶端與服務端之間的網絡數據。這一過程也稱tunneling(隧道)
    因為SSH為其他TCP連接提供了一個安全的通道來進行傳輸:Telnet,SMTP,LDAP等TCP應用,避免了明文傳輸(用戶名/密碼等敏感信息)

  • SSH端口轉發TCP端口
    端口轉發可以“繞過“防火墻對端口的直接限制
    防火墻限制了某些網絡端口,但是允許SSH的連接:
    加密SSH Client端至SSH Server端之間的通訊數據,建立TCP連接。

  • 遠程登錄
    通過scp或sftp實現備份和遠程文件傳輸等的推薦安全協議。
    SSH保證兩個網絡或兩個系統之間數據交互的機密性和完整性。

ssh軟件

  • sshd - 服務端 默認監聽22端口,提供服務
  • ssh - Linux Shell下自由軟件OpenSSH套件中的客戶端連接工具
  • Xshell - win下的ssh客戶端

ssh [option]

-1:強制使用ssh協議版本1;
-2:強制使用ssh協議版本2;
-4:強制使用IPv4地址;
-6:強制使用IPv6地址;
-A:開啟認證代理連接轉發功能;
-a:關閉認證代理連接轉發功能;
-b:使用本機指定地址作為對應連接的源[ip](http://man.linuxde.net/ip)地址;
-C:請求壓縮所有數據;
-F:指定ssh指令的配置文件;
-f:后臺執行ssh指令;
-g:允許遠程主機連接主機的轉發端口;
-i:指定身份文件;
-l:指定連接遠程服務器登錄用戶名;
-N:不執行遠程指令;
-o:指定配置選項;
-p:指定遠程服務器上的端口;
-q:靜默模式;
-X:開啟X11轉發功能;
-x:關閉X11轉發功能;
-y:開啟信任X11轉發功能。

默認配置文件和SSH端口

/etc/ssh/sshd_config #OpenSSH服務器配置文件

/etc/ssh/ssh_config #OpenSSH客戶端配置文件

~/.ssh/ #用戶SSH配置目錄

~/.ssh/authorized_keys #用戶公鑰 RSA或DSA

/etc/nologin #如果存在這個文件,sshd會拒絕除root用戶外的其它用戶登錄

/etc/hosts.allow和/etc/hosts.deny #定義tcp-wrapper執行的訪問控制列表

修改默認配置 - OpenSSH服務器配置文件

編輯配置文件:去掉最前面的#號,保存

vi /etc/ssh/sshd_config
#Port  22
修改端口號

#PermitRootLogin yes   #將yes修改成no
禁止root登錄 - - - 通常用普通用戶登錄,需要管理遠程主機時再切換到root用戶。不直接用root超級權限登錄,有安全隱患

#Protocol 2,1   #修改為Protocol 2 
僅允許SSH協議版本2  - - - SSH協議版本1有安全問題:中間人攻擊(man-in-the-middle),注入(insertion)攻擊

#Banner /some/path
設置登錄時提示信息 - - - 將提示文本文件banner.xt文件的完整路徑,替換掉/some/path

MaxAuthTries 3  #最大登錄次數   密碼錯誤超過3次拒絕登錄
#重啟服務
/etc/init.d/ssh restart

ssh登錄

常用格式:
ssh [-l login_name] [-p port] [user@]hostname

ssh://用戶名:密碼@IP:端口


#指定用戶登錄
ssh root@192.168.0.11
ssh -l root 192.168.0.11

ssh 192.168.0.11#不指定用戶時,默認為本機用戶名

#指定端口
ssh name@remoteserver -p 2222
ssh remoteserver -l name –p 2222

ssh運行命令

ssh -l username remoteserver command

ssh host -l user $(<cmd.txt)     #復雜的遠程shell命令
ssh host -l user “`cat cmd.txt`”  #更具移植性

比較遠程和本地文件的差異

ssh user@host cat /path/to/remotefile | diff /path/to/localfile –

開啟隧道 從某主機的80端口到本地主機2001端口的

ssh -N -L 2001:localhost:80 somemachine

本地主機執行命令后,在瀏覽器中輸入http://localhost:2001即可訪問服務器80端口上的網站

無密碼SSH登錄

ssh-keygen; #先使用ssh-keygen命令生成 密鑰

ssh-copy-id userTom@host   #復制SSH密鑰到目標主機

ssh userTom@host  #無密碼即可登錄

通過跳板機(host1) 操作無法直接訪問的遠程主機host2

在此過程中要先輸入host1的密碼,再輸入host2的密碼,就可操作host2

ssh -t host1 ssh host2

端口映射

假如公司內網有1臺web服務器,名為webserver,但是只對內不對外,外網就無法直接訪問,但可用ssh進行端口映射來實現外網訪問內網的web服務器

** webserver可以用ssh登錄到 遠端主機remoteserver**:

  • 查看remoteserver是否開通3000端口netstat -an|grep 3000 沒被占用就繼續

  • 映射

ssh -R  3000:localhost:80  remoteserver

嘗試打開內網服務器webserver上的網頁

w3m http://127.0.0.1:3000/

如果能打開界面,說明映射成功.但這只能remoteserver機器訪問webserver

因為3000端口綁定的是remoteserver機器的127.0.0.1端口。

可以編輯remoteserver機器上的/etc/ssh/sshd_config文件并添加如下內容:

添加內容GatewayPorts yes
把監聽端口3000綁定到 0.0.0.0 地址上,這樣外部的所有機器都能訪問到這個監聽端口,然后保存退出。重啟ssh服務。
此時其它機器就可以訪問內網的webserver,瀏覽器打開
http://remoteserver:3000/

scp - 傳送文件 【本地主機】執行該命令!

  • 遠程主機的/tmp/test 文件 復制到 本地主機的/bak文件夾下
    scp -p root@192.168.1.120:/tmp/test /bak

  • 遠程主機的/root/lnmp0.4/ 目錄 復制到 本地主機的目錄
    scp -P 2222 -r root@www.tom.net:/root/lnmp/ /home/lnmp/

  • 將本地/bak/1234 文件 復制到 遠程主機的/tmp路徑下
    scp -p /bak/1234 root@192.168.1.120:/var/www/html

-p
保留原始文件的修改時間等
Preserves modification times, access times, and modes from the original file.

-r
Recursively copy entire directories. Note that scp follows symbolic links(軟連接) encountered in the tree traversal.

-P port
更改了SSH默認端口后的端口,沒改不用寫該參數。
Specifies the port to connect to on the remote host. Note that this option is written with a capital ‘P’, because -p is already reserved for preserving the times and modes of the file in rcp(1).

sftp

禁用/刪除openssh-server

CentOS / RHEL / Fedora Linux用戶可以使用下面的yum命令禁用和刪除openssh-server:

chkconfig sshd off

yum erase openssh-server
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,698評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,202評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,742評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,580評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,297評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,688評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,693評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,875評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,438評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,183評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,384評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,931評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,612評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,022評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,297評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,093評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,330評論 2 377

推薦閱讀更多精彩內容

  • ssh常用用法小結 在我們日常的工作中,經常涉及到維護服務器,那么為了方便操作,以及安全方面的考慮,通常我們都會在...
    大晴天小陽光閱讀 3,159評論 0 3
  • CA和證書安全協議(SSL/TLS)OpenSSH 一、CA和證書 (一) PKI(Public Key Infr...
    哈嘍別樣閱讀 1,407評論 0 0
  • OpenSSH是SSH連接工具的免費版本。telnet,rlogin和ftp用戶可能還沒意識到他們在互聯網上傳輸的...
    醋留香閱讀 12,090評論 0 33
  • 1、安全協議SSL/TLS SSL: Secure Socket LayerTLS: Transport Laye...
    張大志的博客閱讀 456評論 0 0
  • 在這個新媒體和自媒體時代,我們身邊出現了很多公眾號、很多大V、很多網紅,越來越多牛人開始出現在我們的認知里,或講述...
    hellonewDaisy閱讀 145評論 0 0