默認埠號為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。
『貳』 linux下如何使用ssh遠程登錄主機 執行shell腳本
知道linux的ip,用戶和密碼就可以遠程登陸了。在你的SSH 客戶端會有一個linux的終端。在這執行命令就可以了。
『叄』 Linux。。shell 腳本中經常要用到ssh。可是ssh又要互動式輸密碼。怎麼能不交互的輸密碼呢
1、登錄A機器
2、ssh-keygen -t [rsa|dsa],將會在~/.ssh下生成密鑰文件和私鑰文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、將 .pub 文件復制到B機器的 .ssh 目錄, 並 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,從A機器登錄B機器的目標賬戶,不再需要密碼了(直接運行 #ssh 192.168.1.100 )
面交互輸入,就得使用expect腳本,例:
#!/bin/bash
passwd='123456'
/usr/bin/expect <<-EOF
set time 30
spawn ssh [email protected]
expect {
"*yes/no" { send "yes\r"; exp_continue }
"*password:" { send "$passwd\r" }
}
expect "*#"
send "cd /home/trunk\r"
expect "*#"
send "ls\r"
expect "*#"
send "exit\r"
interact
expect eof
EOF
『肆』 SSH怎樣連接Linux
SSH連接Linux需要使用SSH客戶端(常用有putty,Xshell,此處以Xshell為例)
1.安裝好Xshell打開軟體。
『伍』 本地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