ssh相關命令

ssh命令是openssh套件中的客戶端鏈接工具,能夠給予ssh加密協議實現安全的遠程登陸服務器。 
語法
ssh(選項)(參數)
選項 
-1:強制使用ssh協議版本1; -2:強制使用ssh協議版本2; 
-4:強制使用IPv4地址; -6:強制使用IPv6地址;
-p:指定遠程服務器上的端口; -b:使用本機指定地址做爲對應鏈接的源ip地址; 
-C:請求壓縮全部數據 -f:後臺執行ssh指令;
-l:指定鏈接遠程服務器登陸用戶名; -g:容許遠程主機鏈接主機的轉發端口;
-F:指定ssh指令的配置文件; -i:指定身份文件; 
-N:不執行遠程指令; -o:指定配置選項; 
-q:靜默模式; -X:開啓X11轉發功能; 
-x:關閉X11轉發功能; -y:開啓信任X11轉發功能。 
-A:開啓認證代理鏈接轉發功能; -a:關閉認證代理鏈接轉發功能;linux

參數 
遠程主機:指定要鏈接的遠程ssh服務器; 
指令:要在遠程ssh服務器上執行的指令。shell

ssh使用
一、查看SSH客戶端版本
有的時候須要確認一下SSH客戶端及其相應的版本號。使用ssh -V命令能夠獲得版本號。須要注意的是,Linux通常自帶的是OpenSSH: 下面的例子即代表該系統正在使用OpenSSH:
# ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013緩存

二、鏈接到遠程主機:
# hostname
lianxi
# ssh 192.168.120.135
The authenticity of host '192.168.120.135 (192.168.120.135)' can't be established.
ECDSA key fingerprint is a1:54:24:18:77:01:db:c7:8c:ac:de:8f:c4:81:01:7a.
Are you sure you want to continue connecting (yes/no)? yes
第一次鏈接目標主機時,ssh 會讓你確認目標主機的真實性。若是你回答的是 NO,SSH 將不會繼續鏈接,只有回答 Yes纔會繼續。
Warning: Permanently added '192.168.120.135' (ECDSA) to the list of known hosts.
root@192.168.120.135's password: 
Last failed login: Mon Apr 10 13:54:09 CST 2017 from :0 on :0
There was 1 failed login attempt since the last successful login.
Last login: Mon Apr 10 13:08:44 2017
# hostname
nisserver
# exit
登出
Connection to 192.168.120.135 closed.安全

# ssh root@192.168.120.120
root@192.168.120.120's password: 
Last login: Tue Apr 11 14:00:20 2017 from 192.168.120.120
# hostname
lianxi
# exit
登出
Connection to 192.168.120.120 closed.
# hostname
shiyan服務器

# hostname
shiyan
# ssh 192.168.120.120 -l root
root@192.168.120.120's password: 
Last login: Tue Apr 11 14:02:34 2017 from 192.168.120.114
# hostname
lianxi網絡

說明:以上兩種方式均可以遠程登陸到遠程主機,server表明遠程主機,name爲登陸遠程主機的用戶名。
# hostname
lianxi
# ssh 192.168.120.135
The authenticity of host '192.168.120.135 (192.168.120.135)' can't be established.
ECDSA key fingerprint is a1:54:24:18:77:01:db:c7:8c:ac:de:8f:c4:81:01:7a.
Are you sure you want to continue connecting (yes/no)? yes
第一次鏈接目標主機時,ssh 會讓你確認目標主機的真實性。若是你回答的是 NO,SSH 將不會繼續鏈接,只有回答 Yes纔會繼續。
Warning: Permanently added '192.168.120.135' (ECDSA) to the list of known hosts.
root@192.168.120.135's password: 
Last failed login: Mon Apr 10 13:54:09 CST 2017 from :0 on :0
There was 1 failed login attempt since the last successful login.
Last login: Mon Apr 10 13:08:44 2017
# hostname
nisserver
# exit
登出
Connection to 192.168.120.135 closed.dom

三、鏈接到遠程主機指定的端口:
# ssh root@192.168.120.120 -p 6222
ssh 192.168.120.120 -l root -p 6222
說明:p 參數指定端口號,一般在路由裏作端口映射時,咱們不會把22端口直接映射出去,而是轉換成其餘端口號,這時就須要使用-p端口號命令格式。
要改變端口號,咱們須要修改 /etc/ssh/ssh_config 文件,找到此行:
Port 22
把它換成其餘的端口號,好比上面示例的 6222 端口,而後重啓 SSH 服務。ssh

四、經過遠程主機1跳到遠程主機2:
# ssh -t 192.168.120.120 ssh 192.168.120.135
root@192.168.120.120's password: 
root@192.168.120.135's password: 
Last login: Tue Apr 11 14:16:45 2017 from 192.168.120.120
# hostname
nisserver
# exit
登出
Connection to 192.168.120.135 closed.
Connection to 192.168.120.120 closed.
# hostname
shiyan
說明:當遠程主機remoteserver2沒法直接到達時,可使用-t參數,而後由remoteserver1跳轉到remoteserver2。在此過程當中要先輸入remoteserver1的密碼,而後再輸入remoteserver2的密碼,而後就能夠操做remoteserver2了。socket

五、經過SSH運行遠程shell命令:ide

[root@lianxi ~]# ls /root/
anaconda-ks.cfg RPM-GPG-KEY.art.txt RPM-GPG-KEY.atomicorp.txt
[root@shiyan ~]# ssh -l root 192.168.120.120 ls /root/
root@192.168.120.120's password: 
anaconda-ks.cfg
RPM-GPG-KEY.art.txt
RPM-GPG-KEY.atomicorp.txt

[root@lianxi ~]# ls /root/ && ls /etc/selinux/
anaconda-ks.cfg RPM-GPG-KEY.art.txt RPM-GPG-KEY.atomicorp.txt
config semanage.conf targeted
[root@shiyan ~]# ssh -l root 192.168.120.120 "ls /root/ && ls /etc/selinux" 
root@192.168.120.120's password: 
anaconda-ks.cfg
RPM-GPG-KEY.art.txt
RPM-GPG-KEY.atomicorp.txt
config
semanage.conf
targeted
說明:鏈接到遠程主機,並執行遠程主機的command命令

對全部數據請求壓縮
有了這個選項,全部經過 SSH 發送或接收的數據將會被壓縮,而且任然是加密的。要使用 SSH 的壓縮功能,使用 -C 選項。
# ssh -C 192.168.120.135
若是你的連網速度很慢的話,使用的是像 LAN 或其它更高級網絡的話,壓縮反而會下降你的傳輸速度。可使用 -o 選項加上壓縮級別參數來控制壓縮的級別,但這個選項僅僅只在 SSH-1 下起做用。


綁定源地址
若是你的客戶端有多於兩個以上的 IP 地址,你就不可能分得清楚在使用哪個 IP 鏈接到 SSH 服務器。
咱們可使用 -b 選項來指定一個IP 地址。這個 IP 將會被使用作創建鏈接的源地址。
# ssh -b 192.168.0.200 -l leni 192.168.0.103

使用其餘配置文件
要使用指定的配置文件,可使用 -F 選項。
# ssh -F /home/pungki/my_ssh_config 192.168.0.101

打開調試模式
由於某些緣由,咱們想要追蹤調試咱們創建的 SSH 鏈接狀況。SSH 提供的 -v 選項參數正是爲此而設的。
# ssh -v 192.168.120.135
OpenSSH_6.6.1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug1: Connecting to 192.168.120.135 [192.168.120.135] port 22.
debug1: Connection established.
... ...
root@192.168.120.135's password:

ssh-keygen命令用於爲「ssh」生成、管理和轉換認證密鑰,它支持RSA和DSA兩種認證密鑰。 
語法 
ssh-keygen(選項) 
選項 
-b:指定密鑰長度; -e:讀取openssh的私鑰或者公鑰文件; 
-C:添加註釋; -f:指定用來保存密鑰的文件名; 
-l:顯示公鑰文件的指紋數據; -i:讀取未加密的ssh-v2兼容的私鑰/公鑰文件,而後在標準輸出設備上顯示openssh兼容的私鑰/公鑰; 
-N:提供一個新密語; -P:提供(舊)密語; 
-q:靜默模式; -t:指定要建立的密鑰類型。

# ssh-keygen -t rsa

ssh-copy-id命令
能夠把本地主機的公鑰複製到遠程主機的authorized_keys文件上,ssh-copy-id命令也會給遠程主機的用戶主目錄(home)和~/.ssh, 和~/.ssh/authorized_keys設置合適的權限。 語法 
ssh-copy-id [-i [identity_file]] [user@]machine 
選項 
-i:指定公鑰文件 
實例 
一、把本地的ssh公鑰文件安裝到遠程主機對應的帳戶下: 
ssh-copy-id user@server 
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

ssh-add命令是把專用密鑰添加到ssh-agent的高速緩存中。該命令位置在/usr/bin/ssh-add。 
語法 
ssh-add [-cDdLlXx] [-t life] [file ...] 
ssh-add -s pkcs11 
ssh-add -e pkcs11 
選項 
-D:刪除ssh-agent中的全部密鑰. -d:從ssh-agent中的刪除密鑰 
-e pkcs11:刪除PKCS#11共享庫pkcs1提供的鑰匙。 -s pkcs11:添加PKCS#11共享庫pkcs1提供的鑰匙。 
-L:顯示ssh-agent中的公鑰 -l:顯示ssh-agent中的密鑰 
-t life:對加載的密鑰設置超時時間,超時ssh-agent將自動卸載密鑰 -X:對ssh-agent進行解鎖 
-x:對ssh-agent進行加鎖

實例 
一、把專用密鑰添加到 ssh-agent 的高速緩存中: 
ssh-add ~/.ssh/id_dsa 
二、從ssh-agent中刪除密鑰: 
ssh-add -d ~/.ssh/id_xxx.pub 
三、查看ssh-agent中的密鑰: 
ssh-add -l

sftp-server命令
是一個「sftp」協議的服務器端程序,它使用加密的方式進行文件傳輸。 
sftp-server - SFTP 服務器子系統
語法
sftp-server [-f log_facility] [-l log_level]
描述
sftp-server 是一個 SFTP 協議的服務端程序,它要求客戶端從 stdin 發起請求,並將應答發送到 stdout 。
通常不直接調用 sftp-server ,而是經過sshd配置文件中的 Subsystem 指令調用。
sftp-server 的命令行選項應當在 sshd 配置文件中的 Subsystem 指令中設置。

ssh-agent命令
是一種控制用來保存公鑰身份驗證所使用的私鑰的程序。ssh-agent在X會話或登陸會話之初啓動,全部其餘窗口或程序則以客戶端程序的身份啓動並加入到ssh-agent程序中。經過使用環境變量,可定位代理並在登陸到其餘使用ssh機器上時使用代理自動進行身份驗證。 
其實ssh-agent就是一個密鑰管理器,運行ssh-agent之後,使用ssh-add將私鑰交給ssh-agent保管,其餘程序須要身份驗證的時候能夠將驗證申請交給ssh-agent來完成整個認證過程。
語法 
ssh-agent [-c | -s] [-d] [-a bind_address] [-t life] [command [arg ...]] ssh-agent [-c | -s] -k 
選項 
-a bind_address:bind the agent to the UNIX-domain socket bind_address. 
-c:生成C-shell風格的命令輸出。 
-d:調試模式。 
-k:把ssh-agent進程殺掉。 
-s:生成Bourne shell 風格的命令輸出。 
-t life:設置默認值添加到代理人的身份最大壽命。 
實例: 
運行ssh-agent,它會打印出來它使用的環境和變量。
# ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-SeBuaIs1LFwc/agent.11523; export SSH_AUTH_SOCK;
SSH_AGENT_PID=11524; export SSH_AGENT_PID;
echo Agent pid 11524;

sshd命令
是openssh軟件套件中的服務器守護進程。 
語法 
sshd(選項) 
選項 
-4:強制使用IPv4地址; -6:強制使用IPv6地址; 
-D:之後臺守護進程方式運行服務器; -d:調試模式; 
-f:指定服務器的配置文件; -e:將錯誤發送到標準錯誤設備,而不是將其發送到系統日誌; 
-h:指定讀取主機key文件; -g:指定客戶端登陸時的過時時間,若是在此期限內,用戶沒有正確認證,則服務器斷開次客戶端的鏈接; 
-i:ssh以inetd方式運行; -o:指定ssh的配置選項; 
-p:靜默模式,沒有任何信息寫入日誌; -t:測試模式。


ssh-keyscan命令
是一個收集大量主機公鑰的使用工具。 
語法 
ssh-keyscan(選項)(參數) 
選項
-4:強制使用IPv4地址; 
-6:強制使用IPv6地址; 
-f:從指定文件中讀取「地址列表/名字列表」; 
-p:指定鏈接遠程主機的端口; 
-T:指定鏈接嘗試的超時時間; 
-t:指定要建立的密鑰類型; 
-v:信息模式,打印調試信息。 
參數 
主機列表:指定要收集公鑰的主機列表。

sftp命令是一款交互式的文件傳輸程序,命令的運行和使用方式與ftp命令類似,可是,sftp命令對傳輸的全部信息使用ssh加密,它還支持公鑰認證和壓縮等功能。 語法 sftp(選項)(參數) 選項 -B:指定傳輸文件時緩衝區的大小; -l:使用ssh協議版本1; -b:指定批處理文件; -C:使用壓縮; -o:指定ssh選項; -F:指定ssh配置文件; -R:指定一次能夠容忍多少請求數; -v:升高日誌等級。 參數 目標主機:指定sftp服務器ip地址或者主機名。

相關文章
相關標籤/搜索