① Windows中: 『ssh『 不是內部或外部命令 解決辦法
1. 檢查是否已安裝OpenSSH
-> 1.1 使用win+R快捷鍵,輸入services.msc,點擊確定
-> 1.2 隨機選擇一個服務,然後搜索o
-> 1.3 如果存在這兩個服務,則跳過2,否則查看2
2. Windows下安裝OpenSSH的方法
-> 2.1 設置 -> 應用 -> 應用和功能 -> 管理可選功能
-> 2.2 選擇添加功能,選擇OpenSSH客戶端和服務端進行下載
3. 添加環境變數
-> 3.1 打開: 此電腦 -> 屬性 -> 高級系統設置 -> 環境變數 -> 系統變數 -> 新建
-> 3.2 新建環境變數,填寫以下路徑和名稱
SSH_PATH
C:\Windows\System32\OpenSSH
-> 3.3 添加path環境變數
C:\Windows\System32\OpenSSH
%SYSTEMROOT%\System32\OpenSSH\
-> 3.4 保存,然後重啟一個終端進行測試
--->3.4.1 如出現下圖則為成功
C:\Users\DELL>ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
[-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
[-i identity_file] [-J [user@]host[:port]] [-L address]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-Q query_option] [-R address] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] destination [command]
C:\Users\DELL>
-> 3.5 鏈接本地小伺服器時,發現時間不正確
--->3.5.1 解決方案:更新系統時間
ntpdate -u pool.ntp.org
---> 3.5.2 效果:
補充:Windows中SSH的作用
Windows的SSH功能主要用於遠程訪問和管理其他計算機、伺服器或虛擬機等設備,用戶可以通過安全的加密通道連接到目標設備並執行命令、訪問文件等操作。與其他遠程訪問協議相比,SSH具有更高的安全性和可靠性,可以在本地計算機與目標設備之間建立一條加密的、安全的連接,保護用戶的敏感信息和數據。
OpenSSH客戶端或其他第三方SSH連接到其他計算機或伺服器,並執行以下任務:
遠程執行命令:可以通過SSH連接到目標設備並在終端中輸入命令。
上傳和下載文件:可以通過SCP或SFTP協議上傳或下載文件。
配置和管理伺服器:可以通過SSH訪問遠程伺服器,並進行配置、管理、監控等。
需要注意的是,SSH功能需要在目標設備上啟用SSH服務,並配置相應的用戶和許可權。如果您要連接到由他人管理的設備,需要獲得相應的授權和合法許可。
② ssh連接如何輸入命令行
通過 ssh 建立與遠程伺服器連接後,可通過以下步驟輸入命令行:1. 打開終端窗口; 2. 輸入 ssh 命令:ssh username@server_address; 3. 輸入密碼或驗證密鑰; 4. 輸入命令; 5. 輸入 exit 退出命令行。
SSH 連接:輸入命令行的步驟
通過 SSH(安全外殼)建立與遠程伺服器的連接後,您可以執行命令行操作。以下是輸入命令行的步驟:
1. 打開終端窗口
在本地計算機上,打開終端窗口或命令提示符。常見的終端應用程序包括 Terminal(macOS)、cmd(Windows)和 Bash(Linux)。
2. 鍵入 SSH 命令
輸入以下命令並在末尾輸入遠程伺服器的 IP 地址或主機名:
ssh username@server_address
其中:
username 是您在遠程伺服器上的用戶名server_address 是遠程伺服器的 IP 地址或主機名
按 Enter 鍵。
3. 輸入密碼或驗證密鑰
如果使用密碼驗證,將提示您輸入密碼。如果您使用 SSH 密鑰進行身份驗證,您需要輸入密鑰的密碼短語(如果有)。
4. 輸入命令
成功連接後,您將看到類似於以下內容的提示:
username@server-address:~gt;
此提示表明您已連接到遠程伺服器並可以輸入命令。要執行命令,只需鍵入命令名稱及其任何參數,然後按 Enter 鍵。
5. 退出命令行
要退出遠程伺服器的命令行,請輸入以下命令:
exit
按 Enter 鍵關閉連接。
③ cmd命令下能否使用什麼命令通過ssh連接到遠程lin呢
1、Windows提供了一些遠程管理功能像使用WindowsPowerShell,ServerManager.exe,或一個telnet伺服器,但它並沒有提供原生的SSH(安全外殼)或SecureFTP訪問。
2、不過,好消息是它是相當容易成立SSH和安全FTP(SFTP)伺服器,讓您可以安全地訪問命令提示符和文件的電腦或遠程伺服器示例使用的情況下,包括故障排除維修或轉移/共享文件,當你走出公室你甚至可以決定設置它做SSH隧道以確保你的Wi-Fi流量使用熱點時。
3、雖然有很多SSH和SFTP伺服器可供選擇,在這里我們將討論freeSSHd以下freeSSH中是一個SSH和Telnet伺服器,支持普通的shell或命令行SSH訪問,基於SSH的SFTP訪問(使用命令行或GUI客戶端)基於SSH隧道(VPN一樣的功能)。
4、freeSSH中很容易通過一個典型的Windows安裝程序安裝做雖然確保創建上面的安裝結束時,因為它們所需的加密的私鑰。
5、配置伺服器一旦你打開freeSSHd以下,你會發現一個系統托盤圖標你可以單擊「打開伺服器設置如果你沒有在安裝過程中創建的私鑰SSH選項卡並單擊「新建」的關鍵()。
④ 怎麼通過ssh在遠程Host執行交互命令
ssh執行遠程操作
命令格式
復制代碼 代碼如下:
ssh -p $port $user@$p 'cmd'
$port : ssh連接埠號
$user: ssh連接用戶名
$ip:ssh連接的ip地址
cmd:遠程伺服器需要執行的操作
准備工作
基於公私鑰認證或者用戶名密碼認證能確保登錄到遠程local2伺服器(有點基本運維知識的人做這個事情都不是問題)
cmd如果是腳本,注意絕對路徑問題(相對路徑在遠程執行時就是坑)
不足
這個命令可以滿足我們大多數的需求,但是通常運維部署很多東西的時候需要root許可權,但是有幾處限制:
遠程伺服器local2禁止root用戶登錄
在遠程伺服器腳本里轉換身份用expect需要send密碼,這樣不夠安全
ssh的-t參數
復制代碼 代碼如下:
-t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.
中文翻譯一下:就是可以提供一個遠程伺服器的虛擬tty終端,加上這個參數我們就可以在遠程伺服器的虛擬終端上輸入自己的提權密碼了,非常安全
命令格式
復制代碼 代碼如下:
ssh -t -p $port $user@$ip 'cmd'
示例腳本
復制代碼 代碼如下:
#!/bin/bash
#變數定義
ip_array=("192.168.1.1" "192.168.1.2" "192.168.1.3")
user="test1"
remote_cmd="/home/test/1.sh"
#本地通過ssh執行遠程伺服器的腳本
for ip in ${ip_array[*]}
do
if [ $ip = "192.168.1.1" ]; then
port="7777"
else
port="22"
fi
ssh -t -p $port $user@$ip "remote_cmd"
done
這個方法還是很方便的,-t虛擬出一個遠程伺服器的終端,在多台伺服器同時部署時確實節約了不少時間啊!