在linux命令中登陸ssh服務的命令是ssh ip,例如:ssh 192.186.1.2。
輸入賬戶和密碼後,您可以登錄Linux伺服器。
ssh登錄Linux伺服器的默認埠為22,即ssh 192.186.1.2 22,通常可以省略22。 如果設置了其他埠,則不能省略它們。
(1)ssh伺服器命令擴展閱讀:
1、SSH連接原理
ssh服務是一個守護進程(demon)。系統後台監視客戶端的連接。ssh服務端的進程名為sshd,它負責實時監視客戶端的請求(IP 22埠),包括交換公共密鑰和其他信息。
ssh伺服器由兩部分組成:openssh(提供ssh服務)、openssl(提供加密的程序)。
ssh客戶端可以用XSHELL,Securert,Mobaxterm和其他工具連接。
2、SSH的工作機制
伺服器啟動時,會生成一個密鑰(768位公共密鑰),本地ssh客戶端向ssh伺服器發送連接請求,然後伺服器檢查連接點客戶端發送的數據和IP地址。
確認有效性後,將密鑰(768位)發送給客戶端。此時,客戶端將本地私有密鑰(256位)和伺服器的公共密鑰(768位)結合成密鑰對key(1024位),然後將其發送回伺服器以建立連接,建立連接通過key-pair數據傳輸。
B. linux如何開ssh服務
1、修改屬性文件:
root@kali:~# leafpad /etc/ssh/sshd_config
C. ssh命令遠程連接linux伺服器
默認埠號為22,sshroot@ip地址。若改變了埠號,則為:ssh登錄名@IP地址-p埠號。
SSH為SecureShell的縮寫,由IETF的網路小組(NetworkWorkingGroup)所制定;SSH為建立在應用層基礎上的安全協議。SSH是目前較可靠的安全協議,專為遠程登錄會話和其他網路服務提供安全服務。利用SSH協議可以有效防止遠程管理瞎亮過程含凱中的信息泄露問題。
SSH最初是UNIX系統上的一個程序,後來又迅速擴展到其他磨老寬操作平台。SSH在正確使用時可彌補網路中的漏洞。SSH客戶端適用於多種平台。幾乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他相關平台,都可運行SSH。
D. SSH連接Ubuntu Server伺服器的兩種方式
SSH(secure shell)用於遠程和伺服器交互
Ubuntu Server默認安裝了OpenSSH Server,可通過埠22連接
SSH客戶端可以用用戶名密碼的方式連接伺服器,也可以用密鑰對的方式連接伺服器。
可以使用SSH客戶端工具PuTTY,windows10自帶的SSH工具,或者VMWare的SSH工具連接伺服器
1.在命令行用 用戶名和密碼連接
ssh username@serveraddress
2.SSH客戶端還可以用 密碼對 (公鑰和私鑰)連接
這里使用Win10自帶的工具
生成密鑰對
運行命令:ssh-keygen
添加公鑰
打開生成的公鑰文件id_rsa.pub,復制全部內容
使用SSH密碼登錄的方式登錄Ubuntu伺服器,在當前用戶目錄創建文件夾.ssh,進入.ssh文件夾並創建文件authorized_keys,粘貼從公鑰復制的內容並保存文件
修改SSH配置
修改Ubuntu Server的文件:
/etc/ssh/sshd_config
將PubkeyAuthentication yes前面的注釋去掉
運行命令重啟sshd服務
sudo systemctl restart sshd
退出SSH連接,重新用私鑰登錄登錄
ssh <username>@<serveraddress> -i <私鑰路徑>
E. Mac下使用SSH遠程登錄伺服器
MAC 是自帶SSH的,可以使用whereis查看是否存在,在終端執行下面的命令: 執行完後會列印存在路徑 之後查看現有進程,執行下列命令: 執行完後會列印現有進程,但是你會發現找不到ssh對應的進程 下列為我的終端執行命令後的結果 這時候如果直接使用SSH命令連接本地主機或者遠程主機會遇到下列錯誤: 解決方法:打開系統偏好設置,在共享中,打開遠程登錄,如下圖: 之後使用ssh localhost來測試一下,如果提示輸入密碼來認證就沒問題了。 之後再grep一下進程就可以看到ssh進程在運行了: 可以通過ssh命令連接其他主機,例如: ssh [email protected] 也可以通過ssh命令連接其他伺服器,例如:ssh -p 埠 用戶名@伺服器ip地址F. 本地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
G. 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遠程執行命令找不到環境變數的問題
H. liunx.系統 怎麼開啟SSH遠程服務和22號埠具體的命令和步驟是甚麼。謝謝。
1. 安裝ssh:yum install ssh或者sudo apt-get install ssh
2. 啟動ssh:service sshd start
3. 登錄遠程伺服器:ssh -p 50022 [email protected]
輸入密碼
說明:
-p 後面是埠
my 是伺服器用戶名
127.0.0.1 是伺服器 ip
回車輸入密碼即可登錄
ssh默認埠就是22,不需要另外修改