ssh相關命令

来源:http://www.cnblogs.com/bokeyuan8192/archive/2017/04/18/ssh.html
-Advertisement-
Play Games

ssh命令 ssh命令是openssh套件中的客戶端連接工具,可以給予ssh加密協議實現安全的遠程登錄伺服器。 語法ssh(選項)(參數)選項 -1:強制使用ssh協議版本1; -2:強制使用ssh協議版本2; -4:強制使用IPv4地址; -6:強制使用IPv6地址;-p:指定遠程伺服器上的埠; ...


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:關閉認證代理連接轉發功能;

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

ssh使用
1、查看SSH客戶端版本
有的時候需要確認一下SSH客戶端及其相應的版本號。使用ssh -V命令可以得到版本號。需要註意的是,Linux一般自帶的是OpenSSH: 下麵的例子即表明該系統正在使用OpenSSH:
# ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

2、連接到遠程主機:
# 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.
[email protected]'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 [email protected]
[email protected]'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
[email protected]'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.
[email protected]'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.

3、連接到遠程主機指定的埠:
# ssh [email protected] -p 6222
ssh 192.168.120.120 -l root -p 6222
說明:p 參數指定埠號,通常在路由里做埠映射時,我們不會把22埠直接映射出去,而是轉換成其他埠號,這時就需要使用-p埠號命令格式。
要改變埠號,我們需要修改 /etc/ssh/ssh_config 文件,找到此行:
Port 22
把它換成其他的埠號,比如上面示例的 6222 埠,然後重啟 SSH 服務。

4、通過遠程主機1跳到遠程主機2:
# ssh -t 192.168.120.120 ssh 192.168.120.135
[email protected]'s password:
[email protected]'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了。

5、通過SSH運行遠程shell命令:

[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/
[email protected]'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"
[email protected]'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.
... ...
[email protected]'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:指定公鑰文件
實例
1、把本地的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進行加鎖

實例
1、把專用密鑰添加到 ssh-agent 的高速緩存中:
ssh-add ~/.ssh/id_dsa
2、從ssh-agent中刪除密鑰:
ssh-add -d ~/.ssh/id_xxx.pub
3、查看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地址或者主機名。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在ORACLE資料庫中,定義外鍵約束時,ORACLE是不會自動創建對應索引的,必須手動在外鍵約束相關的列上創建索引。那麼外鍵欄位上是否有必要創建索引呢?如果有必要的話,巡檢時,如何找出外鍵欄位上沒有創建索引的相關表,並生成對應的索引的腳本呢? 外鍵缺失索引影響 外鍵列上缺少索引會帶來三個問題,限制並... ...
  • 隨著需求的變化越來越快,線上修改表結構變得越來越需要。 在mysql5.6以前,mysql的修改表結構操作會鎖表,這樣就會造成開發人員或者DBA修改表結構必須要等到凌晨流量谷值或者停服修改。這樣必定會流失一部分用戶,在當下的互聯網需求里是不太能容忍的。 在mysql5.6之後,雖然mysql支持線上 ...
  • 在安裝資料庫的時候出現瞭如下錯誤: 解決辦法如下: 1.在bin目錄下 輸入:kill -s 9 9907 再輸入:ps -ef|grep mysql 顯示如下: 2.回到lampp目錄下,重啟資料庫,伺服器: 1. ./lampp restart ...
  • 有這麼一個需求:寫一條sql語句,功能是當B表中的欄位2值=X的時候,修改A表中的一個欄位1=Y,SQL語句如下: ...
  • 業務場景:公司電纜被挖斷,突然斷電導致的宕機。 [oracle@slave1 ~]$ sqlplus / as sysdba SQL> startup mount --載入到mount狀態 SQL> alter database open; [oracle@slave1 trace]$ cd /u0 ...
  • 創建資料庫 如果資料庫不存在則創建,否則切換到指定資料庫 查看當前資料庫名 查看所有資料庫 查看集合 刪除資料庫 刪除當前資料庫 刪除集合,collection為集合名,例 插入文檔 實例 <! more 我們也可以把數據定義為變數 插入文檔也可以使用 命令,如果不指定 欄位save()方法類似 於 ...
  • 最近一個日常實例在做DDL過程中,直接把資料庫給乾趴下了,問題還是比較嚴重的,於是趕緊排查問題,擼了下crash堆棧和alert日誌,發現是在去除唯一約束的場景下,MyRocks存在一個嚴重的bug,於是緊急向官方提了一個bug。其實問題比較隱蔽,因為直接一條DDL語句,資料庫是不會掛了,而是在特定 ...
  • cron服務是Linux的內置服務,但它不會開機自動啟動。可以用以下命令啟動和停止服務: 以上1-4行分別為啟動、停止、重啟服務和重新載入配置。 要把cron設為在開機的時候自動啟動,在 /etc/rc.d/rc.local 腳本中加入 /sbin/service crond start 即可 查看 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...