Linux命令之ssh
ssh [-l login_name] hostname | user@hostname [command]
ssh [-afgknqstvxACNTX1246] [-b bind_address] [-c cipher_spec] [-e escape_char] [-i identity_file] [-l login_name] [-m mac_spec] [-o option] [-p port] [-F configfile] [-L port:host:hostport] [-R port:host:hostport] [-D port] hostname | user@hostname [command]
ssh(SSH客戶端)用於登錄遠程主機,並且在遠程主機上執行命令。它的目的是替換rlogin和rsh,同時在不安全的網絡以及兩個互不信任的主機之間,提供加密的、安全的通信連接。X11連接和任意TCP/IP端口均可以通過此安全通道轉發(forward)。
當用戶通過ssh連接並登錄主機hostname後,根據使用協議,使用不用的方法像遠程主機證明他/她的身份(詳細請使用’man -a ssh’查看)。
(1).選項
-1 強制ssh只使用協議第一版 -2 強制ssh只使用協議第二版 -4 強制ssh只使用IPv4地址 -6 強制shh只使用IPv6地址 -a 禁止轉發認證代理的連接 -A 允許轉發認證代理的連接 代理轉發需謹慎。默寫用戶能夠在遠程主機上繞過文件訪問權限(由於代理的UNIX域socket(套接字)),他們可以通過轉發的連接訪問本地代理。攻擊者不可能從代理獲得密鑰內容但是他們能夠操作這些密鑰,利用加載到代理上的身份信息通過認證。-b bin_address 在用過多個接口或地址別名的機器上,指定收發接口 -c blowfish|3des|des 選擇加密會話的密碼術。3des是默認算法,3des(triple-des)用三支不同的密鑰做加密-解密-加密三次運算,被認為比較可靠。blowfish是一種快速的分組加密術(block cipher),非常安全,而且速度筆3des快的多。des僅支持ssh客戶端,目的是能夠和老式的不支持3des的協議第一版互操作。由於其密碼算法上的弱點,強烈建議避免使用。 -c cipher_spec 另外,對於協議第二版,這裏可以指定一組用逗號隔開,按優先順序排列的密碼數,詳見Ciphers -e ch|^ch|none 設置pty會話的escape字符(默認字符~)。escape字符只在行首有效,escape字符後面跟一個點(.)表示結束連接,跟一個control-Z表示掛起連接(suspend),跟escape字符自己表示輸出這個字符。把這個字符設為none則禁止escape功能,使會話完全透明。 -f 要求ssh在執行命令前退至後臺。它用於當ssh準備詢問口令或密語,但是用戶希望它在後臺進行。該選項隱含了-n選項。在遠端及其上啟動X11程序的推薦手法就是類似於ssh –f host xterm的命令 -g 允許遠端主機連接本地轉發的端口 -i identity_file 指定一個RSA或DSA認證所需的身份(私鑰)文件。默認文件是協議第一版的$HOME/.ssh/identity以及協議第二版的$HOME/.ssh/id_rsa和$HOME/.ssh/id_dsa文件。也可以在配置文件中對每個主機單獨指定身份文件。可以同時使用多個-i選項(也可以在配置文件中指定多個身份文件) -I smartcard_device 指定智能卡(smartcard)設備。參數是設備文件,ssh能夠用它和智能卡通信買智能卡裏面存儲了用戶的RSA私鑰。 -k 禁止轉發Kerberos門票和AFS令牌。可以在配置文件中對每個主機單獨設置這個參數。 -l login_name 指定登錄遠程主機的用戶。可以在配置文件中對每個主機單獨設置這個參數。 -m mac_spec 另外,對於協議第二版,這裏可以指定一組逗號隔開,按優先順序排列的MAC(消息驗證碼)算法(message authentication code)。詳細以MACs為關鍵字查詢。 -n 把stdin重定向到/dev/null(實際上防止從stdin讀取數據)。ssh在後臺運行時一定會用到這個選項。它的常用技巧是遠程運行X11程序。例如,ssh -n shadows.cs.hut.fi emacs &將會在shadows.cs.hut.fi上啟動emacs,同時自動在加密通道中轉發X11連接。Ssh在後臺運行。(但是如果ssh要求口令或密語,這種方式就無法工作;參見-f選項) -N 不執行遠程命令。用於轉發端口(限協議第二版) -o option 可以在這裏給出默寫選項,格式和配置文件中的格式一樣。它用來設置那些沒有命令行開關的選項。 -p port 指定遠程主機的端口。可以在配置文件中對每個主機單獨設定這個參數。 -q 安靜模式。消除所有警告和診斷信息。 -s 請求遠程系統激活一個子系統。子系統是SSH2協議的一個特性,能夠協助其他應用程序(如sftp)把SSH用做安全通路。子系統通過遠程命令指定。 -t 強制分配偽終端。可以在遠程機器上執行任何全屏幕(screen-based)程序,所以非常有用,例如菜單服務。並聯的-t選項強制分配終端,即使ssh沒有本地終端。 -T 禁止分配偽終端 -v 冗詳模式。使ssh打印關於運行情況的調試信息。在調試連接,認證和配置問題時非常有用。並聯的-v選項能夠增加冗詳程度。最多為三個 -x 禁止X11轉發。 -X 允許X11轉發。可以在配置文件中對每個主機單獨設置這個參數。 應該謹慎使用X11轉發。如果用戶在遠程主機上能夠繞過文件訪問權限(根據用戶的X授權數據庫),他就可以通過轉發的連接訪問本地X11顯示器。攻擊者可以據此采取行動,如監視鍵盤輸入等。-C 要求進行數據壓縮(包括stdin,stdout,stderr以及轉發X11和TCP/IP連接的數據)。壓縮算法和gzip(1)的一樣,協議第一版中,壓縮級別’level’用CompressionLevel選項控制。壓縮技術在modem線路或其他慢速連接上很有用,但是在高速網絡上反而可能降低速度。可以在配置文件中對每個主機單獨設置這個參數。另見Compression選項。 -F configfile 指定一個用戶級配置文件。如果在命令行上指定了配置文件,系統級配置文件(/etc/ssh/ssh_config)將被忽略。默認的用戶級配置文件是$HOME/.ssh/config -L port:host:hostport 將本地機(客戶機)的某個端口轉發到遠端指定機器的指定端口。工作原理是這樣的,本地機器上分配了一個socket監聽port端口,一旦這個端口上有了連接,該連接就經過安全通道轉發出去,同時遠程主機和host的hostport端口建立連接。可以在配置文件中指定端口的轉發。只有root才能轉發特權端口。IPv6地址用另一種格式說明:port/host/hostport -R port:host:hostport 將遠程主機(服務器)的某個端口轉發到本地端指定機器的指定端口。工作原理是這樣的,遠程主機上分配一個socket監聽port端口,一旦這個端口上有了連接,該連接經過安全通道轉向出去,同時本地主機和host的hostport端口建立連接。可以在配置文件中指定端口的轉發。只有用root登錄遠程主機才能轉發特權端口。IPv6地址使用另一種格式:port/host/hostport -D port 指定一個本地機器“動態的”應用程序端口轉發。工作原理是這樣的,本地機器上分配一個socket監聽port端口,一旦這個端口上有了連接,該連接就經過安全通道轉發出去,根據應用程序的協議可以判斷出遠程主機將和哪裏連接。目前支持SOCKS4可以在配置文件中指定動態端口的轉發
(2).配置文件
/etc/ssh/ssh_config
詳細請使用’man -a ssh_config’查看幫助文檔
(3).實例
用CentOS6.8連接CentOS7,或用CentOS7連接CentOS6.8。首先要做的都是開放22端口,CentOS6.8防火墻配置文件在/etc/sysconfig/iptables,而CentOS7配置文件在/etc/firewalld/zones/public.xml。然後重啟防火墻服務,CentOS6.8使用service iptables restart,CentOS7使用systemctl restart firewalld。
//首先展示CentOS7連接CentOS6.8
[xf@xuexi ~]$ ssh [email protected] The authenticity of host ‘192.168.128.225 (192.168.128.225)‘ can‘t be established. RSA key fingerprint is SHA256:1ttWCoSQF5u6ZEARHacvCnJeCHK3dCIbQ2ru+lWyAY8. RSA key fingerprint is MD5:1e:32:88:36:4f:7e:0b:3d:8f:13:47:d4:a5:96:a9:4a. Are you sure you want to continue connecting (yes/no)? y Please type ‘yes‘ or ‘no‘: yes Warning: Permanently added ‘192.168.128.225‘ (RSA) to the list of known hosts. [email protected]‘s password: Last login: Mon Apr 9 13:47:49 2018 [root@CentOS6 ~]# ls anaconda-ks.cfg install.log.syslog 模板 圖片 下載 桌面 install.log 公共的 視頻 文檔 音樂
//接著展示CentOS6.8連接CentOS7
[ root@CentOS6 桌面 ]# ssh 192.168.128.223
[email protected]’s password:
Last login: Sat Sep 29 15:18:58 2018
[root@xuexi ~]# ls
Anaconda-ks.cfg initial-setup-ks.cfg
Linux命令之ssh