① ssh命令如何使用
ssh命令用於伺服器的遠程式控制制,一般情況下只要用「ssh IP地址」這樣的格式就可以了,例如:「ssh 192.168.10.10」,可參考:第9章 使用ssh服務管理遠程主機。
② 教你如何通過ssh控制遠程主機,遠程執行命令
教你如何通過ssh控制遠程主機,遠程執行命令ssh控制遠程主機遠程執行命令這個分兩步,很簡單很實用。第一步,設置ssh免認證,免認證就是只不用密碼認證就可以直接登錄,這在寫腳本伺服器控制時特別有用。每二步,就是到遠端伺服器上去執行命令
假如現在有兩個伺服器,一個叫SA,另一個叫SB。現在我要在SA上去控制SB。
格式:ssh
SB_用戶名@SB_IP
命令for
example:ssh
[email protected]
echo
aaa>>hzs_test.txtssh
[email protected]
'echo
-e
haha/n
hoho
>>hzs_test.txt'
③ SSH中在文件下執行命令
# screen [-AmRvx -ls -wipe][-d <作業名稱>][-h <行數>][-r <作業名稱>][-s ][-S <作業名稱>]
參數說明
-A 將所有的視窗都調整為目前終端機的大小。
-d <作業名稱> 將指定的screen作業離線。
-h <行數> 指定視窗的緩沖區行數。
-m 即使目前已在作業中的screen作業,仍強制建立新的screen作業。
-r <作業名稱> 恢復離線的screen作業。
-R 先試圖恢復離線的作業。若找不到離線的作業,即建立新的screen作業。
-s 指定建立新視窗時,所要執行的shell。
-S <作業名稱> 指定screen作業的名稱。
-v 顯示版本信息。
-x 恢復之前離線的screen作業。
-ls或--list 顯示目前所有的screen作業。
-wipe 檢查目前所有的screen作業,並刪除已經無法使用的screen作業。
④ 本地shell腳本中ssh到遠程伺服器並執行命令
在實際運用中在當前伺服器執行命令後,需要在另一台伺服器繼續執行某些命令,分開去到另一台伺服器執行也是比較麻煩的,因此整理下集中執行的方式
1、首先配置ssh免密操作
linux 下實現SSH互信: https://www.jianshu.com/p/2456d98aa607
2、簡單命令
ssh [email protected] "cd /var/lib; ls; cd "
2.1 使用時注意,雙引號必須有。若沒加雙引號,第二條及之後的命令會在本地執行
2.2 分號是將兩條語句間隔開
2.3 單雙引的區別:單引號不會解析值,是什麼就傳什麼;雙引號會解析值,將解析結果傳過去
3、多條命令
ssh [email protected]<< reallssh
cd /var/lib/test
tar -zxvf api.com.tar.gz
......
exit
reallssh
3.1 命令寫在 << reallssh(開始) 至 reallssh(結束) 之間
3.2 reallssh可自己定義為其他形式
3.3 在結束前加上exit退出遠程
4、可能遇到的問題
問題:遠程登錄主機時出現Pseudo-terminal will not be allocated because stdin is not a terminal. 錯誤
解決方案:字面意思是偽終端將無法分配,因為標准輸入不是終端。
所以需要增加-t -t參數來強制偽終端分配,即使標准輸入不是終端。
to force pseudo-tty allocation even if stdin isn』t a terminal.
參考樣例如下:
ssh -t -t [email protected] -p 22
--------------------------------------------------------------------------------
參考:https://blog.csdn.net/jinking01/article/details/84386769
⑤ linux之ssh命令詳解
ssh是什麼呢? 👉網路上是這么說的
簡單來說,在linux中SSH是非常常用的工具,通過SSH客戶端我們可以連接到運行了SSH伺服器的遠程機器上,也就是說,我們可以通過ssh來遠程式控制制我們的電腦或者伺服器。那麼ssh協議的優點就是數據傳輸是加密的,可以防止信息泄露,而且數據傳輸是壓縮的,可以提高傳輸速度。
它的命令格式是👉 ssh [-p port] user@remote
user 是在遠程機器上的用戶名,如果不指定的話默認為當前用戶
remote 是遠程機器的地址,可以是IP/域名,或者是別名
port 是SSH Server監聽的埠,如果不指定,就為默認值22
(使用exit退出當前用戶的登錄)
有關SSH配置信息都保存在用戶家目錄下的.ssh目錄下
接下來,我們就來實際演示一下ssh命令的使用
首先我們需要兩台linux系統的電腦來進行演示,所以我用虛擬機安裝了兩個linux的系統,分別命名為Deepin1和Deepin2(不得不說deepin真的是即好看又好用😄)
不過deepin操作系統默認ssh是沒有開啟的,我們需要手動將它開啟。
第一步,在終端輸入sudo apt-get install ssh安裝ssh服務
第二步,在終端中輸入sudo service ssh start開啟ssh服務
注意:deepin1和deepin2都要執行上面兩步來安裝和開啟ssh服務
安裝並打開ssh之後,我們使用Deepin1來遠程連接Deepin2,那麼我們需要知道Deepin2的ip地址,在終端中輸入ifconfig就可以知道當前機器的ip地址了,或者也可以直接把滑鼠放到網路連接上,會直接顯示出來。我這里Deepin2的IP地址為:192.168.56.132
然後,我們在Deepin1的終端中輸入ssh -p 22 [email protected]然後回車
這里 -p 22 可以省略,22表示ssh的埠號為22, deepin2 為Deepin2的用戶名, 192.168.56.132 為Deepin2的ip地址。
第一次連接,會彈出來是否連接的確認信息,我們輸入yes確認,然後輸入deepin2的密碼並回車。出現如下界面就表示連接成功了。
連接成功後,我們嘗試輸入 cd Desktop/ 切換到桌面目錄,然後輸入 touch 123.txt 在桌面下創建123.txt文件
我們再切換到Deepin2系統中,發現桌面上的確出現了一個新的文件123.txt,大功告成!
到這里ssh的基本操作其實已經演示完了,但是我們發現每次遠程登陸的時候都需要重新輸入密碼,稍微有點麻煩,其實我們可以通過設置,進行免密碼登錄。
免密登錄:
第一步,配置公鑰。在Deepin1終端中執行ssh-keygen即可生成SSH鑰匙,一路回車即可。
第二步,上傳公鑰到伺服器。在Deepin1終端中執行ssh--id -p port user@remotr(ssh--id -p 22 [email protected])可以讓遠程伺服器記住我們。
第三步,設置完成了,試一下是否能免密登錄呢?
可以看到,當我們遠程登陸deepin2時,並沒有輸入用戶密碼就登陸成功了!其實挺簡單的不是嗎?
⑥ 在linux命令中登陸ssh服務的命令是
在linux命令中登陸ssh服務的命令是ssh ip,例如:ssh 192.186.1.2。
ssh服務是一個守護進程(demon)。系統後台監視客戶端的連接。ssh服務端的進程名為sshd,它負責實時監視客戶端的請求(IP 22埠),包括交換公共密鑰和其他信息。
ssh伺服器由兩部分組成:openssh(提供ssh服務)、openssl(提供加密的程序)。
ssh客戶端可以用XSHELL,Securert,Mobaxterm和其他工具連接。
(6)ssh運行命令擴展閱讀:
伺服器啟動的時候自己產生一個密鑰(768bit公鑰),本地的ssh客戶端發送連接請求到ssh伺服器,伺服器檢查連接點客戶端發送的數據和IP地址;
確認合法後發送密鑰(768bits)給客戶端,此時客戶端將本地私鑰(256bit)和伺服器的公鑰(768bit)結合成密鑰對key(1024bit),發回給伺服器端,建立連接通過key-pair數據傳輸。
⑦ Linux系統下如何配置SSH如何開啟SSH
1、如何查看linux操作系統版本
打開linux終端命令行,輸入如下命令即可。lsb_release-a。採用的是實體機伺服器,操作系統為redhat6.7,詳細請看下圖。
2、如何查看SSH服務是否已經旁跡安裝
在終端命令行執行。rpm-qa|grep"ssh"。執行結果請看下圖,說明已經安裝;其實在安裝linux操作系統的時候默認就會安裝上的。
3、如果SSH服務沒有安裝怎麼辦
找到操作系統鏡像文件解壓,找到ssh相關的包,上傳到伺服器。然後執行如下安裝命令安裝即可。rpm-ivhrpm包名。如果伺服器掛載了鏡像,可以直接採用如下命令安裝也可以。yuminstallssh。這里因為我的linux伺服器已經安裝SSH,就運物並不在做安裝操作了。
4、如何啟動SSH服務
啟動命令,servicesshdstart。停止命令,servicesshdstop。重啟命令,servicesshdrestart。首先我們來看看SSH服務是否啟動了,請執行如下命螞畢令即可,servicesshdstatus。如果想重新啟動一下,可以執行重啟命令,servicesshdrestart。具體執行情況請看下圖。
5、怎麼查看SSH埠是多少
執行如下命令,more/etc/ssh/sshd_config。就可以查看到有說明,默認埠為22,具體。另外埠是可以修改的。
6、如何配置開啟SSH服務,有兩種方案
1、關閉防火牆執行如下命令,serviceiptablesstop
2、就是放開22埠,vi/etc/sysconfig/iptables,在iptables文件中加上這一行即可,-AINPUT-mstate--stateNEW-mtcp-ptcp--dport22-jACCEPT。請看下圖操作所示。
⑧ ssh如何遠程執行命令
ssh支持遠程命令參數 可以類似方式嵌套: alias pushbaby='cd /Users/xuqiang/Develop/work/tickets/baby/deploy;scp -r -v -i ~/.ssh/pedal/id_rsa baby.tar.gz baby.sql.txt [email protected]:/home/qiang.xu/tmp;ssh [email protected] -i ~/.ssh/pedal/id_rsa "source ~/.bash_profile;pushbaby";ssh [email protected] -i ~/.ssh/pedal/id_rsa "ssh [email protected] \"source ~/.bash_profile;pushbaby\""'更新要注意的是alias在非交互模式無法使用,需將替換成function
⑨ ssh遠程連接伺服器執行命令
首先說一下使用ssh遠程連接伺服器執行命令的方法:
為了方便描述,這里把測試伺服器稱之為A1,目標伺服器稱之為A2
如果可以直接登錄到A2,則配置成功!
下面來說問題:
ssh在遠程連接伺服器執行命令的時候,經常會遇到環境變數的問題,如下:
如果出現上面的提示,則說明環境變數配置有問題。
先來說解決辦法
問題解決!
這里就要說明bash有兩種方式interactive + login shell模式和non-interactive + non-login shell模式
在伺服器上執行命令,走的是interactive + login shell模式,而通過遠程登錄執行命令,走的是non-interactive + non-login shell模式。
這兩種模式對於環境變數的讀取是有區別的。
Shell首先會載入/etc/profile文件,然後再嘗試依次去載入下列三個配置文件之一,一旦找到其中一個便不再接著尋找:
~/.bash_profile
~/.bash_login
~/.profile
所以當遠程執行命令時,我們只需要讓~/.bashrc文件中的環境變數與/etc/profile中的環境變數一致即可!
參考:
如何解決SSH遠程執行命令找不到環境變數的問題